前台显示和后台数据库显示的不是一个
本帖最后由 tengke 于 2023-11-20 17:17 编辑数据库创建表内容:
class Userinfo(models.Model):
name=models.CharField(verbose_name="姓名",max_length=32)
password=models.CharField(verbose_name="密码",max_length=64)
age=models.CharField(verbose_name="占用",max_length=12)
daa=models.CharField(verbose_name="占用",max_length=12)
gen=models.CharField(verbose_name="占用",max_length=12)
defs= models.ForeignKey(verbose_name="defs",to="Uer",to_field="id",null=True,blank=True,on_delete=models.CASCADE)
def __str__(self):
return self.name
class aj(models.Model):
jb = ((1,'普通'),
(2,'重要'),
(3,'紧急'))
j = models.SmallIntegerField(verbose_name = "级别",choices=jb,default=1)
bt = models.CharField(verbose_name = "标题",max_length=64)
detail = models.TextField(verbose_name = "详细信息")
user = models.ForeignKey(verbose_name = "负责人",to='Userinfo',on_delete=models.CASCADE)
前台节目是 name内容
然后我后台录入数据库的内容是
麻烦大佬看看为什么是id列数据而不是name字段
class Aj(forms.ModelForm):
class Meta:
model = models.aj
fields = [ "j","bt","detail","user"]
from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse
@csrf_exempt
def aj(request):
form = Aj()
# print(request.form)
# print(request.form)
return render(request, "aj.html",{"form":form})
import json
from django.http import HttpResponse
# @csrf_exempt
def ajadd(request):
print(request.POST)
form = Aj(data=request.POST)
if form.is_valid():
form.save()
data = {"status": True}
return HttpResponse(json.dumps(data), content_type="application/json") 在你的表单中,字段'user'是一个ForeignKey,它引用了'Userinfo'模型的数据。在前台节目中,你可能使用了'user'字段,这会导致在前台显示的是'user'字段对应的id,而不是'name'字段的内容。
要解决这个问题,你可以在前台节目中使用'user'字段的相关属性来获取'Userinfo'模型中的'name'字段内容。例如,你可以使用'user.name'来获取用户的姓名,而不是直接使用'user'字段来显示内容。
另外,你也可以在后台视图中对数据进行处理,将'Userinfo'模型中的'name'字段内容传递给前台页面,这样就可以直接显示用户的姓名了。 ?大佬没有听懂 @isdkz
页:
[1]