###前提・実現したいこと
Djangoを使用して簡単な投稿サイトの作成を試みております。
まずは作成したモデルが下記となります。
model.py
1 2class Situation(models.Model): 3 s_id = models.IntegerField() 4 situation = models.CharField(max_length=50) 5 6class aaa_data(models.Model): 7 p_id = models.AutoField(primary_key=True) 8 s_id = models.ForeignKey(Situation) 9 aaa = models.TextField() 10 ruby = models.TextField() 11 ex_1 = models.TextField() 12 date = models.DateTimeField(default=datetime.now) 13
モデルは2つ作成し、Situationは外部キーとなっております。
今回はこのs_idが問題を引き起こしている気がします。
次にビューとテンプレートをご確認ください。
views.py
1class situation_form(ModelForm): 2 class Meta: 3 model = Situation 4 fields = ('situation',) 5 6def lcategory(request): 7 all_situation = Situation.objects.all().values_list('situation', 8flat=True).order_by('situation').distinct() 9 situations = Situation() 10 form = None 11 if request.method == 'POST': 12 form = 13situation_form(request.POST) 14 if form.is_valid(): 15 ××× = form.save(commit=True) 16 ×××.save 17 return HttpResponseRedirect(reverse('×××:lcategory')) 18 pass 19 else: 20 form = situation_form(instance=situations) 21 return render(request, 'each_page/lcategory.html', 22{'all_situation': all_situation})
lcategory.html
1 2<form action="{% url 'magical:lcategory' %}" method="post"> 3 {% csrf_token %} 4 <input type="text" name="situation" maxlength="20"> 5 <input type="submit" value="POST" /> 6</form>
※各コードは一部抜粋したものです。
###発生している問題・エラーメッセージ
ここでフォームより文字を入力して送信すると、
Not Null constraint failedが出ます。
私の想定では、フォームより送信しているデータがテキストのみで、s_idに値が入らないためエラーを引き起こしていると考えております。
このs_idには、入力されるsituationに応じて連番を振って管理したいのですが、
ユーザーが入力するというのではなく、こちらのプログラム上で生成できればと考えております。
数日ハマっており途方に暮れておりますので、どなたかご教示頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/26 23:45