模型值在数据库中保存为对象 (<Model_Name object>) 而不是简单值
Model values saved as object ( <Model_Name object>) in DB rather than simple values
我有一个名为 Love
的模型作为
class Love(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
ans = models.CharField(max_length=1024)
和一个ModelForm
class LoveForm(forms.ModelForm):
class Meta:
model = Love
fields = ('ans',)
显示此表单并将数据保存在数据库中的观点是
def love_form(request):
#user can input as my answers he wants to thats wht multiple times rendering the same template
form = LoveForm()
if request.method == 'POST':
form = LoveForm(request.POST)
if form.is_valid():
answer = form.save(commit=False)
answer.user = request.user
answer.save()
return render(request, 'purpose_using_DB/love_form.html', {'form': form, 'message': 'Successfully Saved'})
else:
return render(request, 'purpose_using_DB/love_form.html', {'form': form, 'message': 'Error Occured'})
else:
return render(request, 'purpose_using_DB/love_form.html', {'form': form})
但问题是 在 admin.site.register(Love)
之后保存在数据库中的数据显示为对象而不是 ans
值
这正常吗?为什么它不在管理中显示像 ans=something
这样的值?
django admin 不知道如何将对象表示为字符串,所以你应该自己处理它(当前行为是正确的)
从自定义开始 list_display
class LoveAdmin(admin.ModelAdmin):
list_display = ["user", "ans"]
# other stuff
结果它将在管理页面中显示一个漂亮的 table 两列(用户和答案)
我有一个名为 Love
的模型作为
class Love(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
ans = models.CharField(max_length=1024)
和一个ModelForm
class LoveForm(forms.ModelForm):
class Meta:
model = Love
fields = ('ans',)
显示此表单并将数据保存在数据库中的观点是
def love_form(request):
#user can input as my answers he wants to thats wht multiple times rendering the same template
form = LoveForm()
if request.method == 'POST':
form = LoveForm(request.POST)
if form.is_valid():
answer = form.save(commit=False)
answer.user = request.user
answer.save()
return render(request, 'purpose_using_DB/love_form.html', {'form': form, 'message': 'Successfully Saved'})
else:
return render(request, 'purpose_using_DB/love_form.html', {'form': form, 'message': 'Error Occured'})
else:
return render(request, 'purpose_using_DB/love_form.html', {'form': form})
但问题是 在 admin.site.register(Love)
之后保存在数据库中的数据显示为对象而不是 ans
值
这正常吗?为什么它不在管理中显示像 ans=something
这样的值?
django admin 不知道如何将对象表示为字符串,所以你应该自己处理它(当前行为是正确的)
从自定义开始 list_display
class LoveAdmin(admin.ModelAdmin):
list_display = ["user", "ans"]
# other stuff
结果它将在管理页面中显示一个漂亮的 table 两列(用户和答案)