У меня есть собственный пользователь
class CustomUser(AbstractUser):
registration_code = models.ForeignKey(RegistrationCode, null=True)
...
def __str__(self):
return self.username
class RegistrationCode(models.Model):
code = models.CharField(max_length=30, null=True, blank=True)
def __str__(self):
return self.code
На странице администратора я хотел бы иметь возможность установить "registration_code".
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
form = CustomUserChangeForm
model = CustomUser
list_display = ['email', 'username', 'registration_code']
fieldsets = (
(None, {
'fields': ('email', 'username', 'registration_code')
}),
)
admin.site.register(CustomUser, CustomUserAdmin)
Но на странице администратора я это делаю не получить список выбора. Но поле ввода по умолчанию:
![enter image description here](https://i.stack.imgur.com/FXdV2.png)
И если я отредактирую registration_code и попытаюсь сохранить, я получу:
Cannot assign "'2'": "CustomUser.registration_code" must be a "RegistrationCode" instance.
Что звучит логично, потому что мне нужно ввести экземпляр RegistrationCode.
Такая же конструкция работает для других моделей, но для специального пользователя это не так ?? Это сводит меня с ума. Кто-нибудь знает, почему я не получаю список выбора?