2017-03-23 11 views
-2

Djangoにはかなり新しいです。 ForeignKeyフィールドstudent_information.projectをヌル値に戻そうとしています。同様に、私のstudent_removeオブジェクトは、 'Remove'がオブジェクトでなければならないので、正しく定義されていないようです。外部キーフィールドをnullに戻すにはどうすればいいですか?

エラーコード

AttributeError at /project_list/projects/1/ 

type object 'Student_Information' has no attribute 'student_remove' 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/project_list/projects/1/?Remove=sathya 
Django Version:  1.10.5 
Exception Type:  AttributeError 
Exception Value:  

type object 'Student_Information' has no attribute 'student_remove' 

Exception Location: /media/rms/Sathya's Dr/mysite/projects/views.py in post_detail, line 27 
Python Executable: /usr/bin/python 
Python Version:  2.7.12 

私のviews.py

def post_detail(request, pk): 
post = get_object_or_404(Project, pk=pk) 
students = Student_Information.objects.filter(project=post) 
if request.GET.get('Remove'): 
    Remove = request.GET.get('Remove')  
    obj = Student_Information.objects.get(RCSID=Remove) 
    #obj.project = None 
return render(request, 'projects/post_detail.html', {'post': post, 'students': students}) 

obj = Student_Information.objects.get(RCSID=Remove) 

が投げているサティア "の主キーを見つけようとしているように、RCSIDがForeignKeyのであることを指定する必要があり、それはそうですここで文字列を取得するだけです。どのように文字列に一致させるには? RCSIDが自動的にRCSID_idであるかのように。

invalid literal for int() with base 10: 'sathya' 
+0

nik_mありがとうございました。私はすぐにフォーマットに慣れるつもりです。 –

答えて

1

エラーメッセージはかなり明確です。 Student_Informationモデルにはstudent_removeという名前のフィールドはありません。

それ以外にも、コードには多くの問題があります。

  • Djangoでは、Modelクラスを更新しません。 Modelクラスのインスタンスを更新します。レコードはModelクラスのインスタンスとして保存されます。だからStudent_Information.student_remove.project = "---------"という行を修正する必要があります。
  • student_information.projectは、単にstudent_information.project = Noneを呼び出してnullに設定できます。しかし、ここでstudent_informationStudent_Informationモデルのインスタンスです。
  • filterは、インスタンスではなくQuerysetを返します。
  • Modelインスタンスでsaveを呼び出してデータベースで更新する必要があります。

公式polls app tutorialをお勧めします。

+0

ありがとうございます。コードを調整してエラーが増えています。あなたが私と一緒に裸になれば嬉しいです。 –

0

RCSIDではなくidを渡して一致させるようにしました。簡単な修正。

関連する問題