#やりたいこと
DjangoでUpdateViewを介さずにモデルの更新を行いたい。
#前提
環境
・python 3.8.0a1
・Django 2.2
モデル
class
1 kw = models.CharField(max_length=200) 2 url = models.CharField(max_length=400) 3 date = models.DateTimeField(auto_now_add = True) 4 first = models.CharField(max_length=200, verbose_name='1位') 5 second = models.CharField(max_length=200, verbose_name='2位') 6 third = models.CharField(max_length=200, verbose_name='3位') 7 fourth = models.CharField(max_length=200, verbose_name='4位') 8 fifth = models.CharField(max_length=200, verbose_name='5位')
アップデート関数
def PriorityUpdate(request, pk): model=Priority url = "https://search.rakuten.co.jp/search/mall/"+ ココがうまく来ません!→ objets.kwargs['kw'] +"/?f=1&grp=product" KW = obj.kw ua = "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) > > AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1" headers={"User-Agent":ua} html = requests.get(url=url, headers=headers) soup = BeautifulSoup(html.content) shopName = [] docs = soup.find_all(class_=("item _rightfloated"), limit=5) for doc in docs : d = doc.get_text() shopName.append(d) dic = { 'document':shopName[0], 'document2':shopName[1], 'document3':shopName[2], 'document4':shopName[3], 'document5':shopName[4], 'url':url, 'kw':KW, } Priority(kw=KW, url=url, first=shopName[0],second=shopName[1],third=shopName[2],fourth=shopName[3],fifth=shopName[4] ).save() return render(request, 'Priority/ad_ranking.html', dic)
#エラー
仮にURLを”127.0.0.1:8000/update/2/”でアクセスすると
AttributeError at /update/1/
type object 'object' has no attribute 'kw'
とエラーが出ます。自分のインスタンスの根本的な扱い方がおかしいのはわかるのですが
調べても解決に至りませんでした。
ご助言のほどお願いいたします。
あなたの回答
tips
プレビュー