1
나는 사용자가 바로 메일을 전송하지 않는 경우장고
초안 기능은 사용자 정의 UserModel를 사용하여 내 간단한 메시지 응용 프로그램에 대한 초안 기능을 구현하기 위해 노력하고있어하지만이 저장 메일, 초안 기능의 문제를 보내 그것.
내 모델을 사용하여 임시 기능을 구현하는 방법을 알아 내는데 어려움이 있습니다.
메일을 보내는 방법을 알아낼 수 있습니다.
@login_required
def Create(request):
person = Person.objects.get(user=request.user)
form = NewMessageForm()
if request.POST.get('send', False):
form = NewMessageForm(request.POST)
if form.is_valid():
recipient = form.cleaned_data['recipient']
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
thread = Thread.objects.create(subject=subject,user=request.user)
recipient = User.objects.get(username=recipient)
message = Message.objects.create(user=request.user,recipient=recipient,body=message,thread=thread)
return HttpResponseRedirect(reverse('world:message'))
elif request.POST.get('save', False):
#How can I save it as a draft?
return render(request,'create.html',{'messages':messages,'form':form,'person':person})
모델
class Thread(models.Model):
subject = models.CharField(max_length=100, blank=True)
user = models.ForeignKey(User)
class Message(models.Model):
user = models.ForeignKey(User, related_name='sender')
recipient = models.ForeignKey(User, related_name='recipient')
created = models.DateTimeField(auto_now_add=True)
body = models.CharField(max_length=1000)
read = models.BooleanField(default=False)
trash = models.BooleanField(default=False)
sentmessage = models.BooleanField(default=False)
thread = models.ForeignKey(Thread)
def __unicode__(self):
return self.body
형태
class NewMessageForm(forms.ModelForm):
recipient = forms.CharField(required=True,max_length=1)
message = forms.CharField(widget=forms.Textarea,required=True,max_length=1)
checkbox = forms.BooleanField(required=False)
def clean_recipient(self):
recipient = self.cleaned_data['recipient']
try:
recipient = User.objects.get(username=recipient)
except User.DoesNotExist:
raise forms.ValidationError("This username does not exist")
return recipient
class Meta:
model = Thread
fields = ('subject',)
템플릿
<form method="POST" >
{% csrf_token %}
{{form.recipient}}
{{form.subject}}
{{form.message}}
<input type="submit" value="send" name="_send" />
<input type="submit" value="save" name="_save" />
</form>
나는 내가 나 자신으로받는 사람을 넣었던 것을 안다? – JackRoster
아니요, 초안이 1 인 메시지를 제외하여받는 사람이 본 메시지 목록을 필터링하면됩니다. 'Messages.objects.filter (recipient = current_user, draft = 0)'와 비슷한 것 –
받는 사람이 지정되지 않은 경우 ,받는 사람 필드를 선택 사항으로 지정하여 '없음'으로 설정할 수 있습니다. http://stackoverflow.com/questions/6619984/can-i-make-the-foreign-key-field-optional-in-django-model I) –