簡體   English   中英

如何在Django Admin中格式化OneToOne關系?

[英]How to format OneToOne Relationship in Django Admin?

我有2個通過OneToOneField關系連接的模型。 這是他們的樣子:

class UserText(models.Model):
    user_input = models.CharField(max_length=2000)

class Question(models.Model):
    user_text = models.OneToOneField(
        UserText,
        on_delete=models.CASCADE,
        blank=True,
        null=True,
    )
    user_questions = models.CharField(max_length=2000)

我希望每個UserText在數據庫中都將Questions模型連接到它。 這就是為什么我使用OneToOne關系。 從這里開始,我不知道如何在admin.py中表示這種關系,因此當我通過admin查看數據庫時,我會看到每個UserText模型及其相關的Question。 到目前為止,這是我的admin.py外觀:

from django.contrib import admin
from v2.models import UserText
from v2.models import Question

@admin.register(UserText)
class UserTextAdmin(admin.ModelAdmin):
    model = UserText
    display = ('user_input')

@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
    model = Question
    display = ('user_questions')

我需要在admin.py中添加或更改什么,以便每個問題模型都通過OneToOne關系連接到其父UserText模型?

您只需要調用正確的相關字段即可。

如果您在Question Admin界面中,則需要將user_text添加到表單中:

@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
    ...
    fields = ('user_text', ...)

如果您位於UserText管理界面中,則可以使用內

class QuestionInline(admin.TabularInline):
    model = Question

@admin.register(UserText)
class UserTextAdmin(admin.ModelAdmin):
    ...
    inlines = [QuestionInline, ]

順便說一句,一個OneToOneField類似於一個ForeignKey unique=TrueForeignKey ,換句話說,每個用戶只能有一個問題。 如果用戶有多個問題,則應切換到ForeignKey

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM