【问题标题】:Django models : auto saveDjango 模型:自动保存
【发布时间】:2016-01-04 14:16:08
【问题描述】:

我的模型有 2 个班级

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_DATA”中的数据时,如何让我的“Applicant_status”填充?

这是我的意见.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 python-2.7 django-models


    【解决方案1】:

    使用 django 信号来实现这一点。 https://docs.djangoproject.com/en/1.8/topics/signals/

    或者您可以手动保存申请人状态,并将 fk 设置为您刚刚在视图中收到的 Application_Data。

    【讨论】:

    • 你能添加一个简短的例子作为参考吗?我有点初学者,我不知所措,谢谢
    • stackoverflow.com/questions/10810202/…。您将 create_badge 功能替换为申请人状态保存功能。
    • 所以.. 要手动保存,我只需要使用 cde = form.save(commit=False) Applicant_status.objects.create(fk=cde.id) 我收到一个错误
    • 粘贴你查看功能。
    • 我已经编辑了我的问题,谢谢大家回答 T.T
    猜你喜欢
    • 1970-01-01
    • 2021-07-26
    • 2014-07-11
    • 2019-03-21
    • 2018-10-07
    • 2019-10-06
    • 2019-08-22
    • 2023-03-23
    • 2017-06-16
    相关资源
    最近更新 更多