Django Forms: Как заполнить варианты поля выбора данными, которые потребовали две другие связанные модели

вот схема работы сайта: пользователь создает аккаунт. затем регистрирует несколько адресов. затем, когда он хочет сделать заказ, он должен выбрать один из ранее зарегистрированных адресов

вот модели:

class User(models.Model):
    customer_id = models.AutoField(primary_key=True)

class Address(models.Model):
    address_id = models.BigAutoField(primary_key=True,)
    address = models.CharField(max_length=500, blank=False,null=False,)
    customer = models.ForeignKey(User, on_delete= models.CASCADE)

class Order(models.Model):
    order_id = models.BigAutoField(primary_key=True)
    customer = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    address = models.ForeignKey(Address, on_delete=models.SET_NULL, null=True)

причина моей проблемы в том, что я должен использовать formtools (FormWizard) для разделения формы заказа на несколько страниц. Вот форма:

class NewOrderForm1(forms.Form):
    ...
class NewOrderForm2(forms.Form):
    address = forms.ChoiceField(required=True,choices=??)
    name = forms.CharField()
class NewOrderForm3(forms.Form):
    ...
class NewOrderForm4(forms.Form):
    ...

у меня 4 формы, как вы видите, и поле адреса находится во второй форме. В views.py у меня есть следующее:

class NewOrder(SessionWizardView, LoginRequiredMixin):

    form_list = [NewOrderForm1, NewOrderForm2, NewOrderForm3, NewOrderForm4]

    def get_template_names(self):
        return [TEMPLATES[self.steps.current]]  # templates for each form

    def done(self, form_list,*context ,**kwargs):
        type_form, deliver_info_form, time_form, final_form = form_list # "deliver_info_form" is the second form(NewOrderForm2) in forms.py

        address = deliver_info_form.address
        name = deliver_info_form.name

        customer = self.request.user

        order = Order.objets.create(
            address=address,
            name=name,
            customer_id=customer.customer_id,
        )
        order.save()
        return render(self.request, template_name="thanks.html",)

все до второй формы/шаблона работает нормально. но я не могу получить ни одного адреса.

Заранее спасибо :)

Вернуться на верх