отображение формы адреса доставки и выставления счетов. - PullRequest
0 голосов
/ 27 сентября 2019

Я хотел бы отобразить форму адреса для доставки и выставления счета на address.html со следующими полями ввода ниже.Цель состоит в том, чтобы опубликовать адрес пользователя (доставка и выставление счетов) в админ / адреса и связать его с их платежным профилем.

'address_line_1', 'address_line_2', 'city', 'country', 'state', 'postal_code',

К вашему сведению: у меня установлен Аллах и установлениспользовал его для создания страниц регистрации, выхода и входа.Если есть более интуитивный способ выполнить эту задачу с помощью Аллаута, пожалуйста, поделитесь!Мне просто нужно, чтобы это работало!Заранее спасибо.

Я создал форм.ModelForm в addressbook / forms.py

from django import forms

from .models import Address


class AddressForm(forms.ModelForm):
    class Meta:
        model = Address
        fields = [
            # 'billing_profile',
            # 'address_type',
            'address_line_1',
            'address_line_2',
            'city',
            'country',
            'state',
            'postal_code',
        ]

, а в addressbook / models.py я создал модель с именем Address

from django.db import models
from billing.models import BillingProfile


ADDRESS_TYPES = (
    ('billing', 'Billing'),
    ('shipping', 'Shipping'),
)


class Address(models.Model):
    billing_profile = models.ForeignKey(BillingProfile, on_delete=models.CASCADE)
    address_type = models.CharField(max_length=120, choices=ADDRESS_TYPES)
    address_line_1 = models.CharField(max_length=120, null=True, blank=True)
    address_line_2 = models.CharField(max_length=120, null=True, blank=True)
    city = models.CharField(max_length=120)
    country = models.CharField(max_length=120, default='United States')
    state = models.CharField(max_length=120)
    postal_code = models.CharField(max_length=120)

    def __str__(self):
        return str(self.billing_profile)

Я создал представление для address.html в ecommerce / views.py

@login_required
def shipping_info(request):
    address_form = AddressForm()
    billing_address_form = AddressForm()
    # order_obj = None

    billing_profile, billing_profile_created = BillingProfile.objects.new_or_get(request)

    template = "carts/addresses.html",
    context = {
        # "object": order_obj,
        "billing_profile": billing_profile,
        "address_form": address_form,
        "billing_address_form": billing_address_form,
    }
    return render(request, template, context)

, как будто все вышеперечисленное было недостаточно запутанным, я создал address.html в электронной торговле/templates/carts/addresses.html.URL работает ... но я не знаю, какой должна быть форма действия.

...