Django模型:自动保存
问题描述:
我有2类从我的模型Django模型:自动保存
class APPLICANT_DATA(models.Model):
FIRST_NAME= models.CharField(max_length=20)
LAST_NAME= models.CharField(max_length=20)
MIDDLE_NAME= models.CharField(max_length=20)
和
class Applicant_status(models.Model):
fkey = models.ForeignKey(APPLICANT_DATA)
COMMENTS = models.CharField(max_length=100, null=True)
date_of_app = models.DateTimeField(auto_now_add=True, blank=True)
如何让我的“Applicant_status”每当“APPLICANT_DATA”数据插入填充?
这里是我的views.py
def save_page(request):
form = application_form(request.POST)
if request.method == 'POST':
if form.is_valid():
emails = form.cleaned_data['EMAIL']
mail = EmailMessage("Your activation and application code is: asdasd, do not show this to anyone", to=[emails])
mail.send()
cde = form.save(commit=False)
applicant_status.objects.create(fk=cde.id)
cde.save()
return HttpResponseRedirect('verify')
else:
form = application_form()
return render(request, 'frontend/apply.html', {'form': form})`
编辑:我的forms.py
from django.forms import ModelForm
from django import forms
from .models import APPLICANT_DATA
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator
class application_form(ModelForm):
FIRST_NAME = forms.CharField(max_length=20, label = ("First Name"),
. . .
class Meta:
model = APPLICANT_DATA
fields = ('FIRST_NAME', 'LAST_NAME', 'MIDDLE_NAME',)
错误的是(1048, “列FKEY”不能为空“)
对不起如果这是一个新手问题
答
使用django信号来实现这一点。 https://docs.djangoproject.com/en/1.8/topics/signals/
或者您也可以手动保存Applicant_Status,并将fk设置为您刚才在视图中收到的Application_Data。
你可以添加一个简短的例子作为参考?我是一个初学者,我不知道谢谢 –
http://stackoverflow.com/questions/10810202/django-post-save-call-from-within-sending-model。您可以使用Applicant_Status保存功能替换create_badge功能。 –
所以..手动保存我只需要使用 'cde = form.save(commit = False)' 'Applicant_status.objects.create(fk = cde.id)' 我收到一个错误虽然 –