在Django中,如果您尝试在一个模型中使用内联模型,并且遇到了没有外键的问题,可能是因为您没有正确地定义外键关系。
首先,请确保您的模型中定义了外键关系。例如,如果您有两个模型,一个是Author
,另一个是Book
,并且每个Book
都有一个Author
,那么您可以在Book
模型中定义一个外键关系,如下所示:
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
在这个例子中,Book
模型中的author
字段是一个外键,它引用了Author
模型。
接下来,您可以使用内联模型来在Django管理界面中一次性创建和更新相关的对象。例如,您可以在admin.py
文件中定义一个内联模型,如下所示:
from django.contrib import admin
from .models import Author, Book
class BookInline(admin.TabularInline): # 或者使用 admin.StackedInline
model = Book
class AuthorAdmin(admin.ModelAdmin):
inlines = [BookInline]
admin.site.register(Author, AuthorAdmin)
在这个例子中,我们创建了一个名为BookInline
的内联模型,它将Book
模型与Author
模型进行了关联。然后,我们在AuthorAdmin
类中将BookInline
添加到了内联关系中,并将AuthorAdmin
注册到了Django管理界面。
现在,当您在Django管理界面中创建或更新Author
对象时,您将能够一次性创建或更新与之相关的Book
对象。
请注意,如果您在尝试内联模型时遇到了其他问题,可能需要检查您的模型定义或内联模型定义是否正确。如果您需要进一步的帮助,请提供更多详细信息,以便我们能够更好地帮助您。
领取专属 10元无门槛券
手把手带您无忧上云