2015-02-07 62 views
0

我不確定爲什麼我在創建ContactRequest模型對象時收到ValueError。使用外鍵創建模型實例時的500代碼

輸出:

(Pdb) unt 
--Return-- 
> /Users/bli1/Development/Django/Boothie/home/views.py(80)load_home_content()->None 
-> contact_request = ContactRequest(message=message, user=new_user.id) 
(Pdb) l 
75      phone_number = form.cleaned_data['phone_number'] 
76      new_user = User(first_name=first_name, last_name=last_name, phone_number=phone_number, email=email) 
77      pdb.set_trace() 
78      new_user.save() 
79      message = form.cleaned_data['message'] 
80 ->     contact_request = ContactRequest(message=message, user=new_user.id) 
81      if contact_request: 
82       print "bad" 
83      contact_request.save() 
84      # pdb.set_trace() 
85     return 
(Pdb) unt 
ValueError: ValueErr...tance.',) 
> /Library/Python/2.7/site-packages/django/core/handlers/base.py(111)get_response() 
-> response = wrapped_callback(request, *callback_args, **callback_kwargs) 
(Pdb) l 
106        break 
107  
108     if response is None: 
109      wrapped_callback = self.make_view_atomic(callback) 
110      try: 
111 ->      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
112      except Exception as e: 
113       # If the view raised an exception, run it through exception 
114       # middleware, and if the exception middleware returns a 
115       # response, use that. Otherwise, reraise the exception. 
116       for middleware_method in self._exception_middleware: 
(Pdb) 

view.py

def load_home_content(request): 
    if request.method == "POST": 
     print request.POST 
     form = ContactForm(request.POST) 
     print "form" 
     print(form) 
     # pdb.set_trace() 
     if form.is_valid(): 
      # after is_valid(), the validated form data willbe in the form.cleaned_data dictionary. 
      # Data will have been nicely converted into Python types 
      email = form.cleaned_data['email'] 
      if User.objects.filter(email=email).exists(): 
       print("email exists") 
       return render(request, 'home/home.html') 
      else: 
       print("email/user does not exist") 
       first_name = form.cleaned_data['first_name'] 
       last_name = form.cleaned_data['last_name'] 
       phone_number = form.cleaned_data['phone_number'] 
       new_user = User(first_name=first_name, last_name=last_name, phone_number=phone_number, email=email) 
       pdb.set_trace() 
       new_user.save() 
       message = form.cleaned_data['message'] 
       contact_request = ContactRequest(message=message, user=new_user.id) 
       if contact_request: 
        print "bad" 
       contact_request.save() 
       # pdb.set_trace() 
      return render(request, 'home/home.html') 
     else: 
      print "form invalid" 
    return render(request, 'home/home.html', {'form': ContactForm}) 

models.py

class User(models.Model): 
    first_name = models.CharField(max_length=50) 
    last_name = models.CharField(max_length=50) 
    phone_number = models.CharField(max_length=20, blank=True) 
    email = models.EmailField() 

    def __str__(self): 
     return self.first_name + " " + self.last_name 

    class Meta: 
     db_table = "home_users" 


class ContactRequest(models.Model): 
    user = models.ForeignKey(User) 
    message = models.TextField(max_length=500) 
    datetime_created = models.DateTimeField("Datetime created", auto_now_add=True) 

    class Meta: 
     db_table = "home_contactrequests" 

回答

1

您應該User實例傳遞給ContactRequest構造:

contact_request = ContactRequest(message=message, user=new_user) 
+0

感謝您的幫助!我得到一個'TypeError' now =/http://dpaste.com/0C0G1BG – Liondancer 2015-02-07 00:58:25

+0

這個'TypeError'的消息是什麼? – catavaran 2015-02-07 01:05:43

+0

我不確定。我剛剛發現了'pdb',所以我現在可以看到的是http://dpaste.com/39A12Q5 – Liondancer 2015-02-07 01:15:20

相關問題