Проблема, связанная с водительскими правами. Лицензия имеет именованное лицо, которому заданы несколько категорий навыков вождения. Каждая категория водительского мастерства имеет одну дату возобновления и возможные многочисленные ограничения, связанные сНесколько ManyToMany в Django Admin
Name
Lic Cat
Renewal date
Restrictions
Tommy
AM
12/05/15
44.01, 101, 999
Tommy
E+B
14/12/16
Tommy
C
18/04/18
101
TG
E+C
14/12/16
90, 101, 999,
TG
B
18/04/18
105
models.py
class Employee(models.Model):
name = models.CharField(max_length=75)
class DrivingLicenceCategory(models.Model):
name = models.CharField(max_length=11)
class IssuingBody(models.Model):
name = models.CharField(max_length=75)
class DrivingLicence(models.Model):
employee_id = models.ForeignKey(Employee)
driver_number = models.CharField(max_length=49)
permit_number = models.CharField(max_length=49)
issuing_body = models.ForeignKey(IssuingBody)
expiry_date = models.DateField()
class DrivingLicenceRestrictions(models.Model):
name = models.CharField(max_length=21)
description = models.CharField(max_length=1024, blank=True, null=True)
class DrivingLicenceCategoryRestrictions(models.Model):
licence_category = models.ForeignKey(DrivingLicenceCategory)
licence_restriction = models.ForeignKey(DrivingLicenceRestrictions)
expiry_date = models.DateField()
class DrivingLicenceDetail(models.Model):
driving_licence = models.ForeignKey(DrivingLicence)
category_restriction = models.ManyToManyField(DrivingLicenceCategoryRestrictions)
admin.py
from django.contrib import admin
from drvlic.models import *
class DrvLicIssuingBodyAdmin(admin.ModelAdmin):
search_fields = ('^name',)
class DrvLicCategoryAdmin(admin.ModelAdmin):
search_fields = ('^name',)
class DrvLicRestrictionsAdmin(admin.ModelAdmin):
search_fields = ('^name',)
list_display = ('id', 'name', 'description',)
class DrvLicLicenceAdmin(admin.ModelAdmin):
search_fields = ('^employee',)
class DrvLicCategoryRestrictionsAdmin(admin.ModelAdmin):
search_fields = ('^employee',)
filter_horizontal = ('licence_category', 'licence_restriction')
admin.site.register(DrvLicIssuingBody, DrvLicIssuingBodyAdmin)
admin.site.register(DrvLicCategory, DrvLicCategoryAdmin)
admin.site.register(DrvLicRestrictions, DrvLicRestrictionsAdmin)
admin.site.register(DrvLicLicence, DrvLicLicenceAdmin)
admin.site.register(DrvLicCategoryRestrictions, DrvLicCategoryRestrictionsAdmin)
Является ли моя модель правильно производить таблицу выше в Django администратора или если модель будет другой? Как настроить admin.py для доступа и ввода данных?
Django сообщает мне, что 'DrvLicCategoryRestrictionsAdmin.filter_horizontal[0]' must be a ManyToManyField'
. Я думаю, что это неудовлетворительно, если модели.py построены некорректно.
согласно документации https://docs.djangoproject.com/en/1.7/ref/contrib/ admin/# django.contrib.admin.ModelAdmin.filter_horizontal, и, как указывает ошибка, это должно быть поле M2M. Похоже, вы использовали там внешний ключ. –