簡體   English   中英

“project.Account”沒有“project.Object”的外鍵:如何將帳戶 model 鏈接到項目的對象?

[英]'project.Account' has no ForeignKey to 'project.Object': How to link an account model to the objects of a project?

我正在嘗試創建一個其他人( Users ,我為其添加了一個Account )可見的公告網站( All )。 為此,我想稍微修改一下用戶配置文件,以添加電話、email 地址等字段……

所以我修改admin.py

from django.contrib import admin
from .models import Todo, Account
from django.contrib.auth.models import User

class AccountInline(admin.StackedInline):
    model = Account
    can_delete = False
    verbose_name_plural = 'Accounts'

class TodoAdmin(admin.ModelAdmin):
    readonly_fields = ('created',)
    inlines = (AccountInline, )

admin.site.unregister(User)
admin.site.register(Todo, TodoAdmin)

但是回來了:

<class 'todo.admin.AccountInline'>: (admin.E202) 'todo.Account' has no ForeignKey to 'todo.Todo'.

所以我用account = models.ForeignKey(Account, on_delete=models.CASCADE)添加了一個ForeignKeyTodo

from django.db import models
from django.contrib.auth.models import User

class Account(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    email = models.CharField(max_length=100)
    firstname = models.CharField(max_length=30)
    lastname = models.CharField(max_length=50)
    company = models.CharField(max_length=5)

    def __str__(self):
        return self.user.username

class Todo(models.Model):
    title = models.CharField(max_length=100)
    datetime = models.DateTimeField()
    memo = models.TextField(blank=True)
    created = models.DateTimeField(auto_now_add=True)
    datecompleted = models.DateTimeField(null=True, blank=True)
    important = models.BooleanField(default=False)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    account = models.ForeignKey(Account, on_delete=models.CASCADE)


    def __str__(self):
        return self.title

但我仍然有錯誤,我在管理面板中沒有任何用戶了

在此處輸入圖像描述

  1. 您不小心在 admin.py 文件中為用戶寫了unregister 它應該是admin.site.register(User)
  2. 您誤解了錯誤:該錯誤表明您的帳戶 model 中沒有外鍵到 Todo。

這意味着您的內聯管理代碼不正確,因為它期望相反。

暫無
暫無

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

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