簡體   English   中英

從另一個與OneToOneField或ForeignKey關系相關的字段中添加字段以進行建模

[英]add fields to model from another one related with OneToOneField or ForeignKey relation

我是django的新手,正在使用1.11版本
我有幾種模型與外鍵有關,有些與oneToOne關系。
例如用戶和個人資料模型,我想在用戶表格中添加個人資料表格字段
怎么樣?
對於oneToOne,我有一個管理模型,其中有一個與用戶模型相關的oneToOne字段。 但不僅僅是管理員,我有幾種類型的用戶(管理員,作家,通勤者...),每種用戶使用不同的模型,並且在創建一種類型時,我也會創建其相關用戶,因此當我在admin中訪問作家表單時,我會創建一個管理員,但我也想擁有用戶的模型字段,以便我從作者的表單創建
在AdminAdmin中,即:admin模型,我想以admin模板中顯示的形式添加用戶字段

from django.contrib import admin

from .models import User, Admin


class UserInline(admin.StackedInline):
    model = User
    fields = ['username', 'first_name', 'last_name']

class AdminAdmin(admin.ModelAdmin):
    model = Admin
    list_display = ['getUsername']
    inlines = [UserInline]

    def getUsername(self, obj):
        return obj.user.username

    getUsername.short_description = "Nom d'utilisateur"

admin.site.register(Admin, AdminAdmin)

此代碼生成錯誤“:(admin.E202)'common.User'沒有對'common.Admin'的ForeignKey。”

使用此設置:

Class A(models.Model):
    # ...
    nameField = models.CharField(max_length=100, ...)
    # ...
    pass

Class B(models.Model)
    # ...
    fk = models.ForeignKey(A)
    # ...

Class C(models.Model):
    # ...
    oto = models.OneToOneKeyField(A)

您無法使用ForeignKey + __ + FieldName訪問實際模型的字段。 例如,您可以使用以下方法從相關模型中訪問模型A的名稱字段:

'fk__name'

C

'oto__name'

暫無
暫無

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

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