У меня есть форма в Django с двумя встроенными формами. Один из них дает мне горе.
Моя модель такая.
class BookingActivity(models.Model):
booking = models.ForeignKey('Booking')
program = models.ForeignKey(Program)
activity = models.ForeignKey(Activity, choices=programs_as_optgroups())
выбор * ForeignKey activity
генерируется с помощью этого метода:
def programs_as_optgroups():
activities = []
programs = []
for program in Program.objects.all():
new_program = []
new_activities = []
for activity in Activity.objects.filter(program=program):
new_activities.append([activity.id, activity.name])
new_program = [program.name, new_activities]
activities.append(new_program)
return activities
Я пытаюсь добавить <optgroup>
теги к своему ForeignKey
выбору, который работает. Но когда я отправляю форму, я получаю сообщение об ошибке: Cannot assign "u'3'": "BookingActivity.activity" must be a "Activity" instance.
В этом есть какой-то смысл. Но если я проверю request
данные, отправленные из формы сообщения. При выборе либо настройки, либо нет, я получаю одинаковые значения, т.е.
activity = models.ForeignKey(Activity, choices=programs_as_optgroups())
и
activity = models.ForeignKey(Activity)
оба возвращают a u'3'
из формы. Но я не могу понять, почему я получаю ошибку, только когда использую optgroups.