【django开发手册】解决admin添加外键下拉显示外键的问题

Django专栏

  • 💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。
  • 📝 CSDN主页:Zeeland🔥
  • 📣 我的博客:Zeeland
  • 📚 Github主页: Undertone0809 (Zeeland) (github.com)
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
  • 📣 系列专栏:django开发手册🍁
  • 💬介绍:The mixture of software dev+Iot+ml+anything🔥

Django系列专栏

前言

在django admin开发的时候,在添加数据的时候,发现了下图的问题。项目id是BimFaceModel的外键,所以在添加数据的时候显示出来是如下的样子,如何把它改成项目名呢?

在这里插入图片描述

解决方案

只要在外键对应的类中添加__str__()函数就好了!在我这里对应的是Project类:

class Project(models.Model):
    class Meta:
        verbose_name = '项目管理'
        verbose_name_plural = verbose_name

	# 添加该函数
    def __str__(self):
        return self.project_name
        
	users = models.ManyToManyField(SysUser, null=True, blank=True)
    project_id = models.AutoField("项目id", primary_key=True)
    project_name = models.CharField("项目名", max_length=255)
    project_description = models.TextField("项目描述", null=True, blank=True)
    

结果如下,over over!

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Django中,当你在一个模型添加一个外键(ForeignKey)字段时,Django会自动创建一个关联的模型对象,并保存到数据库中。如果这个外键字段是指向Django的User模型(即用户模型),那么Django会自动为你创建一个用户对象,并将其与外键字段关联起来。 举个例子,假设你有一个博客应用,其中有一个Post模型和一个User模型,你想让每篇博客都有一个作者,可以在Post模型添加一个外键字段,指向Django的User模型: ```python from django.db import models from django.contrib.auth.models import User class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() author = models.ForeignKey(User, on_delete=models.CASCADE) ``` 在这个模型中,我们定义了一个ForeignKey字段,指向Django的User模型,并设置了on_delete为CASCADE,表示当User对象被删除时,所有与之相关的Post对象也会被删除。 当你在视图中创建一个新的Post对象时,只需要将author字段设置为当前登录用户即可: ```python from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required from .models import Post @login_required def create_post(request): if request.method == 'POST': title = request.POST.get('title') content = request.POST.get('content') post = Post(title=title, content=content, author=request.user) post.save() return redirect('post_detail', pk=post.pk) else: return render(request, 'create_post.html') ``` 在这个视图中,我们从POST请求中获取title和content字段,然后创建一个新的Post对象,并将author字段设置为当前登录用户,最后保存到数据库中。 这样,当你创建一个新的Post对象时,Django会自动创建一个与之关联的User对象,并将其保存到数据库中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeeland

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值