2015-10-07 1 views
0

У меня есть 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})` 

EDIT: Мой 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' не может быть пустым")

К сожалению если это был вопрос новичков

ответ

0

Используйте сигналы django для достижения этого. https://docs.djangoproject.com/en/1.8/topics/signals/

Или вы можете вручную сохранить Applicant_Status с fk, установленным в Application_Data, который вы только что получили в своем представлении.

+0

Можете ли вы добавить краткий пример в качестве ссылки? Я немного новичок, и я ошеломлен благодарю вас. –

+0

http://stackoverflow.com/questions/10810202/django-post-save-call-from-within-sending-model. Вы заменяете функции create_badge функциональностью сохранения Applicant_Status. –

+0

Итак .. Для ручного сохранения я просто должен использовать 'cde = form.save (commit = False)' 'Applicant_status.objects.create (fk = cde.id)' Я получаю сообщение об ошибке хотя –

Смежные вопросы