【问题标题】:change the label of a field in a django form更改 Django 表单中字段的标签
【发布时间】:2022-12-17 13:21:45
【问题描述】:

我正在做一个博客网站项目。我正在使用 Django crispy form 来创建博客文章。用户可以通过点击发布按钮发布文章。在添加帖子页面上,用户必须提供标题、内容、图片。用户还必须选择类别。

博客/模型.py

from django.db import models
from django.utils import timezone
from django.contrib.auth import get_user_model
from django.urls import reverse

# Create your models here.
class Category(models.Model):
    cid = models.AutoField(primary_key=True, blank=True) 
    category_name = models.CharField(max_length=100)

    def __str__(self):
        return self.category_name


class Post(models.Model):
    aid = models.AutoField(primary_key=True)
    image = models.ImageField(null=True, blank=True, default='blog-default.png', upload_to='images/')
    title = models.CharField(max_length=200)
    content = models.TextField()
    created = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
    cid = models.ForeignKey(Category, on_delete=models.CASCADE) 

    def __str__(self):
        return self.title

    
    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk':self.pk})

视图.py

from django.shortcuts import render
from .models import Post
from django.views.generic import CreateView
from django.contrib.auth.mixins import LoginRequiredMixin


class UserPostCreateView(LoginRequiredMixin, CreateView):
    model = Post
    fields = ['title', 'content', 'image', 'cid']

    def form_valid(self, form):
        form.instance.author = self.request.user
        return super().form_valid(form)

post_form.py

{% extends 'users/base.html' %}
{% load crispy_forms_tags %}
{% block content %}
    <div class="content-section">
        <form method="POST" enctype="multipart/form-data">
            {% csrf_token %}
            <fieldset class="form-group">
                <legend class="border-bottom mb-4">Add Post</legend>
                {{ form|crispy }}
            </fieldset>
            <div class="form-group">
                <button type="submit" class="btn btn-outline-primary btn-sm btn-block"> Post </button>
            </div>
        </form>
    </div>
   

{% endblock content %}

此处,浏览器中的 .html 文件显示该类别的标签为“Cid”。但我希望这个标签为“选择类别”。我怎样才能改变这个?

UI

Django 形式.........

【问题讨论】:

    标签: python django


    【解决方案1】:

    您可以将verbose_name='Select Category' 添加到您在models.py 中的字段。这是生成表单时显示的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 2011-11-27
      • 1970-01-01
      • 2012-08-12
      • 2013-01-27
      • 2012-07-24
      • 2023-03-18
      相关资源
      最近更新 更多