我在Django中具有以下模型,基本上,一旦用户插入了一些数据(即,
),我需要自动初始化5个字段中的3个Models.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)
Forms.py
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>
See the JS fiddle for quick reference
基本上,当用户输入新的作业和注释时,我希望Django保存这两个字段,并使用当前时间,0点和A状态自动初始化其他字段。每当我尝试保存新记录时,都会出现错误The view engine.views.home didn't return an HttpResponse object
,这是正常现象,因为Django希望用户完成所有字段,而不仅仅是两个。
以前的研究
根据一些研究,我发现只有one field can be completed in a Django model-id-,但同时他们提到Custom Managers
是可以解决我所遇到问题的类,但是{{ 3}}。
我的主要问题是:
如何在Django中指示要保存两个字段并使用当前日期和时间,0点和A状态自动初始化其他字段?
在此问题上的任何帮助将不胜感激,也可以随时改进此问题。
答案 0 :(得分: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')