Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django模型中自动初始化字段?_Django_Python 3.x_Django Models_Django Forms - Fatal编程技术网

如何在Django模型中自动初始化字段?

如何在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

我在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           = 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:“开始日期”不能为任务模型表单指定,因为它是一个不可编辑的字段
。你有没有可能用你的代码来说明问题的答案?你所描述的问题与你的模型或初始化没有任何关系,而是完全包含在你没有发布的视图中。