前提
djangoを勉強中ですが,あまり理解度は高くありません.
レコード内から特定の変数を取得し,そのままMeCabにかけたいと考えています.
そのために1レコードの内1つの変数を取得したいと考えています.
例えば
名前 年齢 性別 血液型
花子 20 女 AB
太郎 21 男 B
のテーブルがあったとき,「女」というピンポイントのデータを取得したい
というような感じです.
説明が下手だと思いますがよろしくお願いします.
実現したいこと
レコード内のデータを1つだけ取得したい
発生している問題・エラーメッセージ
data = IdeaModel.objects.all().values('idea1') とすると全レコードのidea1が取得される
data = IdeaModel.objects.get(paper=1,section=1) とするとTypeErrorになる
data = IdeaModel.objects.filter(paper=1,section=1) とするとpaper=1,section=1であるレコードが1行取得される
というようになり前提で示したピンポイントなデータが取得できていません.
該当のソースコード
index.html
1{% load static %} 2<!doctype html> 3<html lang="ja"> 4<head> 5 <meta charset="utf-8"> 6 <title>{{title}}</title> 7 <link rel="stylesheet" 8 href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" 9 crossorigin="anonymous"> 10</head> 11<body class="container"> 12 <h1 class="display-4 text-primary">{{title}}</h1> 13 <p class="h5 mt-4">{{message|safe}}</p> 14 <table class="table"> 15 <tr> 16 <th>ID</th> 17 <th>paper</th> 18 <th>section</th> 19 <th>name</th> 20 <th>idea1</th> 21 <th>idea2</th> 22 23 </tr> 24 {% for item in data %} 25 <tr> 26 <td>{{item.id}}</td> 27 <td>{{item.paper}}</td> 28 <td>{{item.section}}</td> 29 <td>{{item.name}}</td> 30 <td>{{item.idea1}}</td> 31 <td>{{item.idea2}}</td> 32 <tr> 33 {% endfor %} 34 </table> 35</body> 36</html>
views.py
1def index(request): 2 data = IdeaModel.objects.all().values('idea1') 3 params = { 4 'title': 'Hello', 5 'message': 'all friends.', 6 'data': data, 7 } 8 return render(request, 'hello/index.html', params)
forms.py
1from django import forms 2from.models import IdeaModel 3 4class IdeaForm(forms.ModelForm): 5 class Meta: 6 model = IdeaModel 7 fields = ['paper','section','name','theme','idea1','idea2','idea3','idea4','idea5' 8 ,'idea6','idea7','idea8','idea9','idea10']
models.py
1from django.db import models 2 3 4class IdeaModel(models.Model): 5 paper = models.IntegerField() 6 section = models.IntegerField() 7 name = models.IntegerField() 8 theme = models.CharField(max_length=50) 9 idea1 = models.CharField(max_length=50) 10 idea2 = models.CharField(max_length=50, blank=True, null=True) 11 idea3 = models.CharField(max_length=50, blank=True, null=True) 12 idea4 = models.CharField(max_length=50, blank=True, null=True) 13 idea5 = models.CharField(max_length=50, blank=True, null=True) 14 idea6 = models.CharField(max_length=50, blank=True, null=True) 15 idea7 = models.CharField(max_length=50, blank=True, null=True) 16 idea8 = models.CharField(max_length=50, blank=True, null=True) 17 idea9 = models.CharField(max_length=50, blank=True, null=True) 18 idea10 = models.CharField(max_length=50, blank=True, null=True) 19 20 def __str__(self): 21 return 'アイデア ' + 'paper:' + str(self.paper) + ' ・section:' + str(self.section) + ' ・name:' + str(self.name) 22
試したこと
エラーメッセージにも示したようにviews.pyの1文を以下のように変えたりしました.
data = IdeaModel.objects.all().values('idea1') とすると全てのidea1が取得される
というようになり,paperが1,sectionが1であるidea1を取得することができませんでした.
補足情報(FW/ツールのバージョンなど)
django4.14
python3.10.8
windouws 10
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/01/18 07:07