django - Django ModelForm 中的复选框和单选按钮

标签 django python-3.x django-models django-forms

欢迎 friend 们,

我是 Django 的新手。我需要你的帮助。说真的。

我想在表单中添加复选框和单选按钮。

任何帮助将不胜感激。

models.py

from django.db import models
from shop.models import Product

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 Meta:
        ordering = ('-created',)

    def __str__(self):
        return 'Order {}'.format(self.id)

    def get_total_cost(self):
        return sum(item.get_cost() for item in self.items.all())

forms.py

from django import forms
from .models import Order

class OrderCreateForm(forms.ModelForm):
    class Meta:
        model = Order
        fields = ['first_name', 'last_name', 'email', 'address', 'postal_code', 'city']

create.html

{% extends "shop/base.html" %}

{% block title %}
    Checkout
{% endblock %}

{% block content %}
    <h1>Checkout</h1>

    <form action="." method="post" class="order-form">
        {{ form.as_p }}
        <p><input type="submit" value="Place order"></p>
        {% csrf_token %}
    </form>
{% endblock %}

欢迎任何建议。请帮忙。

更新

如何添加选择选项?

最佳答案

你可以做这样的事情

CHOICES=[('item1','item 1'),
         ('item2','item 2')]
class OrderCreateForm(forms.ModelForm):
    postal_code = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect())
    ....
class Meta:
    model = Order
    fields = ['first_name', 'last_name', 'email', 'address', 'postal_code', 'city']

类似地,您也可以对其他字段进行操作

对于复选框,您可以将其定义为 BooleanFileld 并且可以使用

{{ form.paid }}

在你的模板中。

关于django - Django ModelForm 中的复选框和单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43569192/

相关文章:

python - Django 模板 : Is there a way to query a specific object based on its property (instead of iterating over all)?

Django:DetailView 实现 get_queryset()

python - 重新启动计算机并获得 : ImportError: No module named django. core.management

python - 即使 pip 已更新,安装软件包时仍出现 Pip 版本错误

python-3.x - 无法 pip 安装 egenix-mx-base

python - 从ManytoMany模型获取值列表

python - 为什么这段 Python (Django) 代码会占用内存?

python - Pandas 读取错误的列

python - 在django中按两个日期从数据库中订购数据

python - django: 'python manage.py migrate' 花费数小时(和其他奇怪的行为)