У меня есть модель людей, у которой есть собственное Иностранное поле Матери. Когда пользователь переходит к форме «добавить» администратора, я хочу определить начальное значение для Мать, если есть параметр GET («мать») или оставить его пустым, в противном случае.Django - определение начального значения ForeignField в Admin
У меня есть на самом деле 2 вопроса:
- Как получить доступ запрос внутри ModelAdmin?
- Как определить начальное значение для ForeignField?
В models.py:
class Person(models.Model):
name=models.CharField()
mother=models.ForeignKey('self')
В admin.py:
class PersonAdminForm(forms.ModelForm):
class Meta:
model = Person
class PersonAdmin(admin.ModelAdmin):
mother = request.GET.get('mother','') #don`t know how to access request
if mother != '':
form = PersonAdminForm
form.initial={'mother':Person.objects.get(id=mother)}
Ну, это не работает. Даже если я только попытаюсь определить твердое начальное значение, он не работает.
Что я делаю неправильно?
PS: Конечно, я могу задавать неправильные вопросы, поэтому я ценю любую помощь, которая решает проблему.
Привет, он работает. И это на самом деле более универсальный, поэтому я устанавливаю это как правильный ответ. Потребовал мне время, чтобы снова попробовать что-то подобное и найти свой ответ на свой вопрос: P – pedrovgp
Почему вы делаете 'form = PersonAdminForm' в классе? – becko
Обычно для добавления пользовательского поведения https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#adding-custom-validation-to-the-admin – Moreno