我需要一些有關以下最佳實踐實施的指導。Django:如何訪問發佈數據並與條件匹配
我有一個場景,我正在構建一個應用程序,但如果它匹配某個「類別」或「區域設置」並希望將其重定向到其他頁面之間,則只需轉到正常路線即可。
這裏是我的簡單views.py
if form.is_valid():
...
kwargs = {'project_id':project_id, 'categories':request.POST['categories'], 'locale':request.POST['locale']}
process_se(request, **kwargs)
return HttpResponseRedirect(obj.next_url)
以下是我在我的models.py文件,但它似乎是非常不一致。 有沒有更好的方法來處理這個請求?
def process_se(self, request, **kwargs):
if "All" or "Sweden" in kwargs['locale']:
if "Technology" or "Internet" in kwargs['categories']:
next_url = request.build_absolute_uri(reverse('project_new_se', kwargs={'project_id': self.id}))
else:
next_url = request.build_absolute_uri(reverse('project_new_step2', kwargs={'project_id': self.id}))
self.next_url = next_url
更新:
我使用forms.ModelForm
,categories
和locales
是ManyToManyField
的 我已經模擬了在外殼和似乎仍然沒有得到結果
這裏是cleaned_data輸出
f.cleaned_data
{'locale': [<Locale: Sweden>, <Locale: All>], 'categories': [<Category: Technology>, <Category: Internet>]}
儘管爲字段i n根據您的解決方案,表單看起來完美無缺
@garteh非常感謝你爲這個詳細的說明,但它似乎仍然沿途失敗,這可能的事實是由於我使用ManyToManyFields - 我增加了一些額外的更新上面,你的幫助非常感謝! – ApPeL 2012-03-13 10:13:35
啊,我看到:語言環境和類別是對象。所以你不能直接將它們與字符串進行比較,你必須將它們的*名稱與字符串進行比較。查看我的更新。 – 2012-03-13 10:25:41
Legen - 等待它 - dary!像魅力一樣工作,編輯一點點,你需要在manytomany領域有.all(),否則它會引發一個錯誤,並需要在視圖中傳遞項目對象:) – ApPeL 2012-03-13 10:55:10