django - 用户单击按钮时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
解决方案
这是一个非常糟糕的主意,让我们考虑一下用户点击按钮 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 编码风格
推荐阅读
- django - 在 django rest 框架中处理多部分表单数据时遇到问题
- javascript - 如何在 yyyy-mm-dd 格式的 javascript 中将日期字符串转换为日期对象
- node.js - 时尚商务的 Elasticsearch
- javascript - Mapbox:如何从 http 请求链接获取点之间旅行的持续时间值?
- keras - 将模型从 keras h5 转换为 pytorch - 全连接层不匹配
- android-studio - 打开特定的 Kotlin 文件后,Android Studio 速度变慢
- python - Tkinter 拖放标签信息到数据库
- laravel - Laravel 的视频库
- laravel - 迁移创建期间的 Laravel 8 问题
- c++ - C++:使用 Blackmagic DeckLink SDK 读取访问冲突(this-> x was nullptr)