需要一个用多列构建Django表单字段的示例吗

2024-04-26 03:35:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个Django表单,其中每个字段可以有多个用户输入的列。例如,让用户输入每周的体重

        week1 week2 week3 week4
weight   120   125   123   130

我的原始代码简化如下:

你知道吗型号.py你知道吗

class Person(models.Model):
     weight = models.PositiveIntegerField(default=0)

你知道吗表单.py你知道吗

class PersonCreateForm(forms.ModelForm):
     class Meta:
         model = Person

你知道吗视图.py你知道吗

class PersonCreateView(CreateView):
     model = Person
     template_name = 'add_person.html'
     form_class = PersonCreateForm

从django文档来看,似乎需要多值字段?还是模板厂?(请举例)https://docs.djangoproject.com/en/1.8/ref/forms/fields/#multivaluefield


Tags: django用户py表单modelmodelsformsclass
1条回答
网友
1楼 · 发布于 2024-04-26 03:35:02

我想我不会像你现在这样做。与其用许多不同的“周”作为列,不如用一个“周”列并将每个条目作为自己的行。想象一下让人们连续5年每周输入体重。这将给你260列!你知道吗

我会尝试这样的方法:

你知道吗型号.py你知道吗

class Person(models.Model):
    user = models.ForeignKey(User) #many to one relationship to User table
    week = models.PositiveIntegerField()
    weight = models.PositiveIntegerField()

通过以这种方式设计数据库,您可以快速而轻松地执行各种查询,例如:查询每个人并查看他们的所有数据,获取每个用户一周的数据。你知道吗

你知道吗视图.py你知道吗

current_user = request.user
Person.objects.filter(user=current_user)

    OR

current_user = request.user
Person.objects.filter(week=4)

相关问题 更多 >