我有很多問題,我敢肯定很容易,但不適合我。在模型對象中搜索值,如果存在的話
我有2種型號:
- VipPassesModel
- ProfileModel
然後我這個觀點,至極的目的是執行以下任務(順序):
- 搜索「VIP代碼」是否存在於「VipPassesModel」中
- 如果存在「VIP代碼」,請檢查是否與某個用戶(配置文件模型 - 外鍵)匹配
- 如果沒有用戶與該VIP代碼簽名,則將當前用戶登錄(Id - 外鍵)保存在該VIP中代碼(這會讓這個VIP代碼不再可用)
我VipPassesModel:
class VipPassesModel(models.Model):
"""
VIP Passes Code Model.
"""
code = models.CharField(max_length = 15)
is_used = models.BooleanField(default=False)
user_asigned = models.ForeignKey(ProfileModel, related_name='profile_name', verbose_name="User Full Name", blank=True, null=True,)
我View.py
def vipcodevalidation(request):
"""
Funcion que recibe el CODE VIP y si es valido, lo asigna al usuario actual
"""
if request.method == 'POST':
form = VipPassesForm(data=request.POST)
if form.is_valid():
vipcode = form.cleaned_data['code']
user_to_asign = request.user
if VipPassesModel.objects.filter(code = vipcode).exists():
# Tomar el objeto y grabarle en "user_asigned" el id del usuario de django logueado actualmente (user_to_asign)
else:
#nada que hacer aqui
else:
form = VipPassesForm()
return render(request,'vipcode.html',{'form':form},context_instance=RequestContext(request))
我會讚賞你們的幫助。只是要清楚,我沒有收到錯誤消息,只是我不知道如何處理這個問題。
'如果沒有對象.filter'沒有失敗,就沒有必要使用'嘗試except' – AlvaroAV
@Liarez,你有沒有注意到'[ 0]'來獲取對象? – Rohan
不,我現在明白你爲什麼使用try除了。無論如何,你可以做'如果VipPassesModel.objects。過濾器(代碼= vipcode,user_asigned = NULL):'如果它是真的,將有一個肯定的對象 – AlvaroAV