首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在尝试内联模型时,<class>在Django中没有<class>的外键

在Django中,如果您尝试在一个模型中使用内联模型,并且遇到了没有外键的问题,可能是因为您没有正确地定义外键关系。

首先,请确保您的模型中定义了外键关系。例如,如果您有两个模型,一个是Author,另一个是Book,并且每个Book都有一个Author,那么您可以在Book模型中定义一个外键关系,如下所示:

代码语言:python
代码运行次数:0
复制
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文件中定义一个内联模型,如下所示:

代码语言:python
代码运行次数:0
复制
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对象。

请注意,如果您在尝试内联模型时遇到了其他问题,可能需要检查您的模型定义或内联模型定义是否正确。如果您需要进一步的帮助,请提供更多详细信息,以便我们能够更好地帮助您。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?

    写这篇文章完全是机缘巧合,想想已经好长时间没有关注过Django了,虽然Django一直霸占着Python Web开发界的王座,但是由于各种原因自从使用Asyncio以来一直使用Aiohttp这个框架。碰巧因为之前写了几天的《2019逆向复习系列》,脑子里充斥着“逆向”,“逆向”,“逆向”。今天想换换思路写点其他的文章,偶然间看到前两天Django 3.0版本推出,简单看了下Django 3.0的新特性,看到Django 3.0正式版本终于支持ASGI了,内心真是一阵澎湃,当时放弃Django去选择其他的异步框架也是因为它不支持异步,现在它终于完全拥抱异步了,我也就可以重拾Django,尝尝鲜啦!

    01
    领券