私はそれを改善することを決めるまで、うまく動作するdjango eコマースプロジェクトを持っています。私はユーザーに特定のサービスを注文させるが、注文するたびにその詳細(名前、エミール、住所など)を入力する必要があるので、ユーザーが請求先住所を追加して参照できるようにアプリケーションをアップグレードすることに決めた注文したり、ゲストとして続ける。電子商取引アプリケーションのDjangoユーザーモデルの拡張
モデル
class Order(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
address = models.CharField(max_length=250)
postal_code = models.CharField(max_length=20)
city = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
class OrderItem(models.Model):
order = models.ForeignKey(Order, related_name='items')
product = models.ForeignKey(Product,related_name='order_items')
price = models.DecimalField(max_digits=10, decimal_places=2)
quantity = models.PositiveIntegerField(default=1)
ユーザが持っていないように、そのユーザーがアドレスや携帯電話を登録することができますので、私はその後、アカウントのアプリを作成し、Djangoのユーザに拡張
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
for item in cart:
OrderItem.objects.create(order=order, product=item['product'],price=item['price'], quantity=item['quantity'])
cart.clear()
return render(request,'order/created.html', {'order': order})
else:
form = OrderCreateForm()
return render(request, 'order/create.html',{'cart': cart, 'form': form})
ビュー注文するたびに入力してください。
私の新しいモデルは私が私の見解をコードする方法について混乱しています
class Order(models.Model):
account = models.ForeignKey(Account, related_name='user_account')
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
coupon = models.ForeignKey(Coupon, related_name='orders',null=True,blank=True)
discount = models.IntegerField(default=0,validators=[MinValueValidator(0), MaxValueValidator(100)])
です。どのような援助が役立つだろうと私はまた、管理エリアでの注文の詳細を表示できるように
def admin_order_detail(request, order_id):
order = get_object_or_404(Order, id=order_id)
#account = Account.objects.filter(request.user)
context = {
'order': order,
}
template = 'order/detail.html'
return render(request,template,context)
を持っていますが、私は唯一の完全な名前、電子メールと電話番号を拡張することができています。どんな助けもありがとう。 githubのから事前に感謝
すべてのコードのコピーを https://github.com/Olar19/ecommerce
[Djangoのカスタムフィールドでユーザーモデルを拡張する](https://stackoverflow.com/questions/44109/extending-the-user-model-with-custom-fields-in-django) – itzMEonTV
It重複していません。 – King