首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django ModelForm显示外键的模型字段,而不是对象id

Django ModelForm是Django框架中的一个表单类,用于快速生成表单并与数据库模型进行交互。当模型中存在外键字段时,默认情况下,ModelForm会以对象的id值来显示外键字段。如果希望显示外键的模型字段而不是对象id,可以通过以下步骤实现:

  1. 在定义ModelForm时,通过fields属性指定需要显示的字段列表。确保包含外键字段。
  2. 在模板中,使用form.field_name来显示外键字段的模型字段。

下面是一个示例:

代码语言:txt
复制
# models.py
from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

# forms.py
from django import forms
from .models import Book

class BookForm(forms.ModelForm):
    class Meta:
        model = Book
        fields = ['title', 'author']  # 包含外键字段author

# views.py
from django.shortcuts import render
from .forms import BookForm

def create_book(request):
    if request.method == 'POST':
        form = BookForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('book_list')
    else:
        form = BookForm()
    return render(request, 'create_book.html', {'form': form})

# create_book.html
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">保存</button>
</form>

在上述示例中,Book模型有一个外键字段author,BookForm中通过指定fields属性包含了外键字段author。在模板中使用{{ form.as_p }}来显示表单字段,这样就会显示外键的模型字段而不是对象id。

关于Django ModelForm的更多信息,可以参考腾讯云的相关产品文档: https://cloud.tencent.com/document/product/1081/50042

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券