鱼C论坛

 找回密码
 立即注册
查看: 1127|回复: 3

[已解决]前台显示和后台数据库显示的不是一个

[复制链接]
发表于 2023-11-20 17:15:28 | 显示全部楼层 |阅读模式
7鱼币
本帖最后由 tengke 于 2023-11-20 17:17 编辑 [/i]

数据库创建表内容:
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内容
1700471477616.jpg
然后我后台录入数据库的内容是
1700471574714.jpg
麻烦大佬看看为什么是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")
最佳答案
2023-11-20 17:15:29
在你的表单中,字段'user'是一个ForeignKey,它引用了'Userinfo'模型的数据。在前台节目中,你可能使用了'user'字段,这会导致在前台显示的是'user'字段对应的id,而不是'name'字段的内容。

要解决这个问题,你可以在前台节目中使用'user'字段的相关属性来获取'Userinfo'模型中的'name'字段内容。例如,你可以使用'user.name'来获取用户的姓名,而不是直接使用'user'字段来显示内容。

另外,你也可以在后台视图中对数据进行处理,将'Userinfo'模型中的'name'字段内容传递给前台页面,这样就可以直接显示用户的姓名了。

最佳答案

查看完整内容

在你的表单中,字段'user'是一个ForeignKey,它引用了'Userinfo'模型的数据。在前台节目中,你可能使用了'user'字段,这会导致在前台显示的是'user'字段对应的id,而不是'name'字段的内容。 要解决这个问题,你可以在前台节目中使用'user'字段的相关属性来获取'Userinfo'模型中的'name'字段内容。例如,你可以使用'user.name'来获取用户的姓名,而不是直接使用'user'字段来显示内容。 另外,你也可以在后台视图中对数据进行 ...

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-20 17:15:29 | 显示全部楼层    本楼为最佳答案   
在你的表单中,字段'user'是一个ForeignKey,它引用了'Userinfo'模型的数据。在前台节目中,你可能使用了'user'字段,这会导致在前台显示的是'user'字段对应的id,而不是'name'字段的内容。

要解决这个问题,你可以在前台节目中使用'user'字段的相关属性来获取'Userinfo'模型中的'name'字段内容。例如,你可以使用'user.name'来获取用户的姓名,而不是直接使用'user'字段来显示内容。

另外,你也可以在后台视图中对数据进行处理,将'Userinfo'模型中的'name'字段内容传递给前台页面,这样就可以直接显示用户的姓名了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-11-20 17:19:57 | 显示全部楼层
?大佬没有听懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-11-20 17:32:53 | 显示全部楼层
@isdkz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-20 08:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表