如何获得用户选择的无线电选项? Django的

时间:2015-08-30 10:43:01

标签: python django

我有一个名为UserAddress的模型和一个从同一模型创建的表单,即UserAddressForm。

class UserAddress(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    address = models.CharField(max_length=120)
    address2 = models.CharField(max_length=120, null=True, blank=True)
    city =  models.CharField(max_length=120, null=True, blank=True)
    phone =  models.CharField(max_length=120)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)

    def __unicode__(self):
        return self.get_address()
    def get_address(self):
        return"%s,%s,%s,%s" %(self.address, self.address2,self.city,self.phone)

我正在使用收音机复选框显示html中的所有用户地址。我想在我的视图中获取用户选择的地址,并分配给我无法弄清楚的另一个模型实例。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如果您的模型结构如下:

class UserAddress(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    address = models.CharField(max_length=120)
    address2 = models.CharField(max_length=120, null=True, blank=True)
    city =  models.CharField(max_length=120, null=True, blank=True)
    phone =  models.CharField(max_length=120)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)

    def __unicode__(self):
        return self.get_address()
    def get_address(self):
        return"%s,%s,%s,%s" %(self.address, self.address2,self.city,self.phone)


class Order(models.Model):
    address = models.ForeignKey(UserAddress)

您可以根据订单模型制作表单,放置ModelChoiceField并将小工具指定为RadioSelect

from django import forms


class OrderForm(forms.Form):
    address = forms.ModelChoiceField(
        queryset=UserAddress.objects.all(),
        widget=forms.widgets.RadioSelect(),
    )

在这种情况下,当您处理OrderForm提交时,您将拥有用户选择的地址。