當我嘗試Daniel Roseman和Tim Diggins在Redirect on admin Save的上述建議時,如果我放入一個URL並指定了obj.id,它可以工作,但是當我使用obj時。它會給出一個Django無法找到「無」的錯誤。爲了解決這個問題,我必須在我的模型中找到id的最大值並使用它(如下所示)。Django Admin - def response_add找不到obj.id
def response_add(self, request, obj, post_url_continue=None):
arunidlist = arun.objects.values_list('id', flat=True)
newpk = max(arunidlist)
return HttpResponseRedirect("/admin/nbig/arun/%s" % str(newpk))
# this did not work: return HttpResponseRedirect("../%s" % obj.id)
# this worked: return HttpResponseRedirect("/admin/nbig/arun/99")
(注意nbig是我的模型和阿倫是我的應用程序)
我看到我引用的字符串是一對夫婦歲,但如果有人能告訴我如何避免hackiness,我會很感激。謝謝。
被修改的問題:
訂正功能:
def response_add(self, request, obj, post_url_continue=None):
return HttpResponseRedirect("../%s" % obj.id)
模型(Django的創建的ID的主鍵):
class arun(models.Model):
auser = models.CharField(max_length=15, null=True)
more fields here
alastcompid = models.FloatField(null=True)
class Meta:
verbose_name = 'NBI Graph'
verbose_name_plural = 'NBI Graph'
def __str__(self):
return str(self.id)
錯誤: 找不到網頁(404) 請求方法:GET 請求地址:http://127.0.0.1:8000/admin/nbig/arun/None/ 引發自:django.contrib.admin .options.change_view 主鍵爲'None'的NBI Graph對象不存在。 你看到這個錯誤,因爲你的Django設置文件中有DEBUG = True。將其改爲False,Django將顯示一個標準的404頁面。
我保存爲新的代碼相關部分(這可能會造成問題?):
def save_model(self, request, obj, form, change):
f_id = request.POST.get('id','')
f_adate = datetime.now().date()
f_atime = datetime.now().time()
if '_saveasnew' in request.POST:
aa = arun(id=f_id, adate = f_adate, atime = f_atime)
aa.save(force_insert=True)
您是否在模型上手動指定了主鍵?你可以展示你的模型,以及當你使用'obj.id'時的完整回溯。 – Alasdair
Alasdair, 感謝您提供任何幫助。我不手動設置ID字段。 訂正功能: DEF response_add(個體,請求,OBJ,post_url_continue =無): 返回HttpResponseRedirect( 「../%的」 %obj.id) 型號: 類阿倫(models.Model): auser = models.CharField(MAX_LENGTH = 15,空=真)在這裏 多個字段 alastcompid = models.FloatField(空=真) 類元: verbose_name = 'NBI圖' verbose_name_plural = 'NBI圖' 高清__str __(self): return str(self.id) – Sandra
以下是錯誤消息:Page not found(404) 請求方法:\t GET 請求URL:\t http://127.0.0.1:8000/admin/nbig/arun/None/ 提出者:\t django.contrib.admin.options.change_view與主鍵 NBI Graph對象'沒有'不存在。 – Sandra