отсутствие внешнего ключа в модели администратора? - PullRequest
0 голосов
/ 28 января 2019

Я получаю следующую ошибку при попытке обновить мою базу данных:

класс 'artdb.admin.RoleInline': (admin.E202) 'artdb.Role' не имеет ForeignKey для 'artdb.Person'

Я хочу, чтобы между человеком и ролью не было отношения многие ко многим

model.py (не показаны все классы):

class Person(models.Model):

    mail=models.EmailField()
    firstName=models.CharField(max_length=200)
    lastName=models.CharField(max_length=200)
    phoneNumber=PhoneNumberField()
    streetAdress=models.CharField(max_length=200)
    zipcode=models.CharField(max_length=200)
    city=models.CharField(max_length=200,default="Göteborg")
    country=models.CharField(max_length=200,default="Sweden")

    def __str__(self):
        return "%s %s" % (self.firstName,self.lastName)

    class Meta:
        ordering = ('firstName','lastName')

class Role(models.Model):

    role=models.CharField(max_length=200)
    person=models.ManyToManyField(Person)

    def __str__(self):
        return self.role

    class Meta:
        ordering = ('role',)

admin.py (не отображаются всеклассы):

from django.contrib import admin
from .models import Role
from .models import Address
from .models import Date
from .models import Person
from .models import Name

# Register your models here.

admin.site.register(Role)
admin.site.register(Address)
admin.site.register(Date)
admin.site.register(Name)
admin.site.register(Person)

class RoleInline(admin.TabularInline):

    model=Role
    extra=3


class PersonInline(admin.ModelAdmin):

    fieldsets=[
        (None,{'fields': ['mail','firstName','lastName','phoneNumber','streetAdress','zipcode','city','country']}),
    ]
    inlines = [RoleInline]
    search_fields = ['firstName']

#admin.site.register(Name,NameInline)
admin.site.register(Person,PersonInline)

раньше он работал с run manage.py makemigrations artdb Я не вижу ошибки в моделях.

1 Ответ

0 голосов
/ 28 января 2019

У вас неправильная модель для RoleInline согласно документации для ManytoMany отношений в TabularInline

 model = Role.persons.through
...