Я хочу отредактировать модель в админке, у которой есть внешний ключ к другой модели, у которой, в свою очередь, есть внешний ключ к базовой модели:
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 NameInline(admin.TabularInline):
model=Name
extra=3
class PersonInline(admin.ModelAdmin):
fieldsets=[
(None,{'fields': ['mail','firstName','lastName','phoneNumber','streetAdress','zipcode','city']}),
]
inlines = [RoleInline,Name]
search_fields = ['firstName']
#admin.site.register(Name,NameInline)
admin.site.register(Person,PersonInline)
а это модель:
class Role(models.Model):
role=models.CharField(max_length=200)
person=models.ForeignKey(Person,on_delete=models.CASCADE)
def __str__(self):
return self.role
class Meta:
ordering = ('role',)
class Name(models.Model):
name=models.CharField(max_length=200)
role=models.ForeignKey(Role,on_delete=models.CASCADE)
def __str__(self):
return self.name
class Meta:
ordering = ('name',)
class Address(models.Model):
name=models.ForeignKey(Name,on_delete=models.CASCADE)
street=models.CharField(max_length=200)
city=models.CharField(max_length=200)
mail=models.EmailField()
phone=PhoneNumberField()
def __str__(self):
return self.name
class Meta:
verbose_name_plural = "addreses"
class Meta:
ordering = ('name',)
class Date(models.Model):
date=models.DateField()
location=models.ManyToManyField(Address)
проблема в том, что имя связано с ролью, а не напрямую с человеком, то есть у роли есть внешний ключ к человеку, а имя имеет внешний ключ к роли, и его нужно добавить на страницу администратора, которую я использую.
В django отсутствуют вложенные строки, есть ли обходной путь?