2
私は、「作成」画面を生成するために私のモデルを使用して、以下のクラスベースのビューがあります。generic.edit.CreateView割り当てのデフォルト値とデータベースに挿入
class ProjectCreateView(generic.edit.CreateView):
model = Project
fields = ['project_title','project_description','created_date']
template_name = 'steps/project-detail.html'
success_url = reverse_lazy('index')
モデル:
class Project(models.Model):
project_title = models.CharField(max_length=200)
project_description = models.CharField(max_length=200, default="")
created_date = models.DateTimeField('date created')
owner = models.ForeignKey(User)
def __str__(self):
return self.project_title
を
今、問題は私が'created_date'
を実際のフォームに載せたくないということです。代わりに、[送信]ボタンを押すたびに、またはレコードがデータベースに追加されるたびに、自動的に値を入力するようにします。どうすればこれを達成できますか?
最後に、owner
フィールドをデフォルトで指定することはできますか?つまり、このレコードを作成しているユーザーの情報をそのフィールドに入力する必要があります。
何日時フィールドのために(https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.DateField.auto_now_add)[auto_now_add' ']使用について代わりに? – AKS
@AKSはい、モデルフィールドに 'auto_now_add'を使うのは良い提案です。その場合、 'form.instance.created_date = datetime.now()'行をコードから削除することができます。 – Alasdair
これはどのように見えるでしょうか? inと同様に、auto_now_addをモデルに追加するとエラーになります。 – MadPhysicist