如何在Django模型中自动初始化字段?
我在Django中有以下模型,基本上,一旦用户插入了一些数据,我需要自动初始化5个字段中的3个,即 型号.py如何在Django模型中自动初始化字段?,django,python-3.x,django-models,django-forms,Django,Python 3.x,Django Models,Django Forms,我在Django中有以下模型,基本上,一旦用户插入了一些数据,我需要自动初始化5个字段中的3个,即 型号.py class Assignment(models.Model): assignment = models.CharField(max_length=60) comments = models.CharField(max_length=60) starting_date = models.DateField() points
class Assignment(models.Model):
assignment = models.CharField(max_length=60)
comments = models.CharField(max_length=60)
starting_date = models.DateField()
points = models.IntegerField()
STATUS = (('A', 'Active'), ('C', 'Cancelled'), ('D', 'Done'))
status = models.CharField(max_length=1, choices=STATUS)
from django import forms
from .models import Task
class TaskForm(forms.ModelForm):
class Meta:
model = Task
starting_date = datetime.now()
fields = ['task_description', 'task_comments', 'starting_date', 'priority', 'points']
Forms.py
class Assignment(models.Model):
assignment = models.CharField(max_length=60)
comments = models.CharField(max_length=60)
starting_date = models.DateField()
points = models.IntegerField()
STATUS = (('A', 'Active'), ('C', 'Cancelled'), ('D', 'Done'))
status = models.CharField(max_length=1, choices=STATUS)
from django import forms
from .models import Task
class TaskForm(forms.ModelForm):
class Meta:
model = Task
starting_date = datetime.now()
fields = ['task_description', 'task_comments', 'starting_date', 'priority', 'points']
输入表单
<!-- Input form to request to values-->
<div class="panel-heading">Add a new assignment </div>
<form id ="insert_new_assign" class="form-horizontal" method="POST">
{% csrf_token %}
<div class="panel-body">
<div class="input-group">
<input class="form-control" name="insert_new_assign_field" type="text" placeholder="Insert your new assignment here" />
<input class="form-control" name="insert_new_comment_field" type="text" placeholder="Any comment you want to add?" />
<button class="btn btn-primary" type="submit">Add</button>
</div>
</div>
</form>
</div>
添加新任务
{%csrf_令牌%}
添加
基本上,当用户输入新的作业和注释时,我希望Django保存这两个字段,并使用当前时间、0分和状态自动初始化其他字段。每当我试图保存一条新记录时,我都会得到一个错误视图引擎.views.home没有返回一个HttpResponse对象
,这是正常的,因为Django希望用户完成所有字段,而不仅仅是两个字段
以前的研究
根据一些研究,我发现只有id,但同时他们提到了定制管理器,这些类可以解决我的问题
我的主要问题是:
如何在Django中指示保存这两个字段,并使用当前日期和时间、0分和状态自动初始化其他字段
在此问题上的任何帮助都将不胜感激,请随时改进此问题。在Bidhan提出一些建议后,我能够获得以下代码以绕过此问题
from django.utils import timezone
class Assignment(models.Model):
STATUS = (
('A', 'Active'),
('C', 'Cancelled'),
('D', 'Done')
)
assignment = models.CharField(max_length=60)
comments = models.CharField(max_length=60)
starting_date = models.DateField(default=timezone.now())
points = models.IntegerField(default=0)
status = models.CharField(max_length=1, choices=STATUS, default='A')
对于开始时间,您可以在模型中将auto\u now\u add添加为True;对于整型字段,将default添加为0;对于status,添加status的默认id;在这种情况下,还可以添加blank和null。在forms.py中,用required=False标记它们。因此,models.py应该有start\u date=models.DateField(auto\u now\u add=True)
类似的内容?是的。我已经提出了一些建议,但我发现了另一个问题:django.core.exceptions.FieldError:“开始日期”不能为任务模型表单指定,因为它是一个不可编辑的字段
。你有没有可能用你的代码来说明问题的答案?你所描述的问题与你的模型或初始化没有任何关系,而是完全包含在你没有发布的视图中。