首页 > 解决方案 > 用户单击按钮时Django添加字段

问题描述

是否可以在模型中添加字段取决于用户单击按钮的次数?

示例:原始样本模型

class samplemodel(models.Model):
  username=models.CharField(max_length=500)
  category=models.CharField(max_length=500)
  date=models.DateField(max_length=500)

html

 <input type="text" name="category">
 <input type="date">
 <input type="submit">

如果用户单击提交按钮两次,samplemodel 将如下所示

class samplemodel(models.Model):
  username=models.CharField(max_length=500)
  category=models.CharField(max_length=500)
  category1=models.CharField(max_length=500) /user add
  category2=models.CharField(max_length=500) /user add
  date=models.DateField(max_length=500)
  date1=models.DateField(max_length=500)/user add
  date2=models.DateField(max_length=500)/user add

标签: django

解决方案


这是一个非常糟糕的主意,让我们考虑一下用户点击按钮 1.000 次。这意味着您在逻辑上向模型添加 1000 个字段。您可以使用两种方法。首先,您可以在模型中添加一个数组字段并将新日期添加到该字段:

class SampleModel(models.Model):
    # your other fields
    dates = ArrayField(
        models.DateField(),
    )

其他方式,您可以创建包含日期字段和用户名的新表。您可以在用户每次单击按钮后添加新记录。

 class UserClickDateModel(models.Model):
     username = models.CharField(max_length=255) 
     category = models.CharField(max_length=255)
     clicked_date = models.DateField()

作为建议,您可以使用外键作为用户名。也可以在 django camelcase 中通常用于类名。你可以在这里找到更详细的 django 编码风格


推荐阅读