Вариант использования:
Существует 3 модели:
- Пользователь
- Отдел
- Офис
Отношения:
Я хочу создать встроенную страницу для моей административной страницы пользователя в поле Office. Однако я хотел бы заполнить встроенные параметры ведомствами, которые принадлежат только тем подразделениям, в которые входит пользователь.
Код:
class User(models.Model):
username = models.CharField(max_length=100)
class Division(models.Model):
name = models.CharField(max_length=100)
users = models.ManyToManyField(User)
class Office(models.Model):
name = models.CharField(max_length=100)
division = models.ForeignKey(Division, on_delete=models.CASCADE, null=True, blank=True)
class OfficeAdminForm(forms.ModelForm):
# I assume I should change it here, but I don't know how to filter accordingly.
office = forms.ModelChoiceField(queryset=Office.objects.all(), empty_label="(Nothing)")
class OfficeInline(admin.TabularInline):
model = Office
form = OfficeAdminForm
class UserAdmin(admin.ModelAdmin):
inlines = [OfficeInline]
admin.site.register(Item, ItemAdmin)
admin.site.register(Category)