如何在不选择“项目”的情况下创建新问题(手动选择 project_id)?

徐美月

在此处输入图片说明我正在通过使用 Django 创建任务管理 Web 应用程序来完成我的学校项目。我的职责是创建“问题跟踪器”,类似于“StackOverflow”,但我仍处于它的早期阶段。所以我用脆皮形式让用户创建他们自己的新问题。由于我们使用'project_id'和'issue_id'作为参数将用户引导到不同的页面,所以我遇到了这个问题,用户在创建新问题时必须手动选择'project'。我不知道如何将用户创建的问题放在正确的项目下,而不必手动选择“项目”。

表单.py

from django import forms
from .models import Comment,Issue

class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ('body',)

class IssueForm(forms.ModelForm):
    class Meta:
        model = Issue
        fields = ('title','content','project','status')

class NewIssueForm(forms.ModelForm):
    class Meta:
        model = Issue
        fields = ('title','content','project','status')

新问题.html

{% extends 'base.html' %}
{% load crispy_forms_tags %}

{% block content %}
    <h1>Add New Issue </h1>
    <form method="POST" class="Issue-form">{% csrf_token %}
        {{form|crispy}}
        <button type="submit" class="btn btn-success">Submit</button>
    </form>

{% endblock %}

模型.py

class Issue(models.Model):
    STATUS_CHOICES = (
        ('draft', 'Draft'),
        ('published', 'Published'),
    )
    project = models.ForeignKey(Project,on_delete=models.CASCADE)
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250)
    content = models.TextField()
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    published = models.DateTimeField(default=timezone.now)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=9, choices=STATUS_CHOICES, default='draft')

    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        super(Issue, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('project:issue_tracker:issue_detail', kwargs={'project_id':self.project_id, 'issue_id':self.id})

    def __str__(self):
        return self.title

网址.py

urlpatterns =[
    path('',views.list_of_issue,name='list_of_issue'),
    path('<int:issue_id>/',views.issue_detail,name='issue_detail'),
    path('<int:issue_id>/comment',views.add_comment,name='add_comment'),
    path('new_issue/',views.new_issue,name='new_issue'),
    path('<int:issue_id>/edit_issue/',views.edit_issue,name='edit_issue'),
    path('<int:issue_id>/delete_issue/',views.delete_issue,name='delete_issue'),
    path('<int:issue_id>/delete', TemplateView.as_view(template_name="issue_tracker/issue/nice_delete.html"), name='success_deletion'),
]
阿尔法汉·扎赫迪

您可以在问题表单中为项目字段设置初始值可以在此处找到有关如何完成此操作的说明

由于您使用project_idissue_id作为参数,类似于以下内容将解决您的问题(我猜):

def new_issue(request, project_id, issue_id):
    .
    . 
    form = IssueForm(initial={'project': project_id})
    .
    .

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Laravel 5.2 中使用 project_id 打印 project_name

来自分类Dev

我如何通过Rails中的ruby的注释获取project_id

来自分类Dev

如何在不使用C#手动更新ID的情况下将依赖LINQ插入SQL实体?

来自分类Dev

在正常情况下,如何通过带有提交ID的webhook触发Gitlab CI管道的手动触发?

来自分类Dev

如何在不创建单独的ID的情况下将一项功能用于多个项目?

来自分类Dev

Gcloud命令行获取默认的project_id

来自分类Dev

如何在不手动列出查询中的所有值的情况下使用 SQL 创建分发表?

来自分类Dev

如何在不手动在SQL中手动键入列名的情况下透视表

来自分类Dev

Oracle SQL。如何在列的值指定条件的情况下选择特定的ID?

来自分类Dev

如何在不使用类或ID的情况下选择相同的属性?

来自分类Dev

Oracle SQL。如何在列的值指定条件的情况下选择特定的ID?

来自分类Dev

如何在不手动定义宽度的情况下居中放置div

来自分类Dev

如何在不手动修改文件的情况下编辑部署?

来自分类Dev

如何在不手动复制和粘贴的情况下遍历python生成的列表?

来自分类Dev

如何在不手动计算偏移的情况下以编程方式堆叠视图?

来自分类Dev

如何在没有ID的情况下通过getElementByClassName或querySelector在javascript中设置选择值dropdownlist

来自分类Dev

如何在不知道ID的情况下选择SQLIte DB的最后一个条目?

来自分类Dev

SQL:如何在匹配ID的情况下获得结果,然后根据另一列选择要保留的结果?

来自分类Dev

我如何在不创建另一个bean id的情况下访问类的相同实例

来自分类Dev

Mongoose:如何在保存前手动设置_id?

来自分类Dev

如何在不手动关闭选项卡的情况下保持Firefox的可用性?

来自分类Dev

如何在不手动关闭选项卡的情况下保持Firefox的可用性?

来自分类Dev

如何在不手动设置每个属性的情况下更新数据库中的实体对象?

来自分类Dev

在不手动刷新asp.net的情况下如何在gridview中更新数据?

来自分类Dev

如何在不手动输入的情况下让tmux打开一组窗格?

来自分类Dev

如何在不手动编写障碍的情况下将障碍分布到我的网格?

来自分类Dev

几个C#项目如何在没有繁琐的手动复制的情况下使用非托管DLL?

来自分类Dev

Google BigQuery:如果project_id包含连字号“-”,请使用TABLE_QUERY

来自分类Dev

找不到“ job.card.desc”的参考字段“ project_id”

Related 相关文章

  1. 1

    如何在 Laravel 5.2 中使用 project_id 打印 project_name

  2. 2

    我如何通过Rails中的ruby的注释获取project_id

  3. 3

    如何在不使用C#手动更新ID的情况下将依赖LINQ插入SQL实体?

  4. 4

    在正常情况下,如何通过带有提交ID的webhook触发Gitlab CI管道的手动触发?

  5. 5

    如何在不创建单独的ID的情况下将一项功能用于多个项目?

  6. 6

    Gcloud命令行获取默认的project_id

  7. 7

    如何在不手动列出查询中的所有值的情况下使用 SQL 创建分发表?

  8. 8

    如何在不手动在SQL中手动键入列名的情况下透视表

  9. 9

    Oracle SQL。如何在列的值指定条件的情况下选择特定的ID?

  10. 10

    如何在不使用类或ID的情况下选择相同的属性?

  11. 11

    Oracle SQL。如何在列的值指定条件的情况下选择特定的ID?

  12. 12

    如何在不手动定义宽度的情况下居中放置div

  13. 13

    如何在不手动修改文件的情况下编辑部署?

  14. 14

    如何在不手动复制和粘贴的情况下遍历python生成的列表?

  15. 15

    如何在不手动计算偏移的情况下以编程方式堆叠视图?

  16. 16

    如何在没有ID的情况下通过getElementByClassName或querySelector在javascript中设置选择值dropdownlist

  17. 17

    如何在不知道ID的情况下选择SQLIte DB的最后一个条目?

  18. 18

    SQL:如何在匹配ID的情况下获得结果,然后根据另一列选择要保留的结果?

  19. 19

    我如何在不创建另一个bean id的情况下访问类的相同实例

  20. 20

    Mongoose:如何在保存前手动设置_id?

  21. 21

    如何在不手动关闭选项卡的情况下保持Firefox的可用性?

  22. 22

    如何在不手动关闭选项卡的情况下保持Firefox的可用性?

  23. 23

    如何在不手动设置每个属性的情况下更新数据库中的实体对象?

  24. 24

    在不手动刷新asp.net的情况下如何在gridview中更新数据?

  25. 25

    如何在不手动输入的情况下让tmux打开一组窗格?

  26. 26

    如何在不手动编写障碍的情况下将障碍分布到我的网格?

  27. 27

    几个C#项目如何在没有繁琐的手动复制的情况下使用非托管DLL?

  28. 28

    Google BigQuery:如果project_id包含连字号“-”,请使用TABLE_QUERY

  29. 29

    找不到“ job.card.desc”的参考字段“ project_id”

热门标签

归档