【问题标题】:Dropdown list in DjangoDjango中的下拉列表
【发布时间】:2020-05-11 04:33:56
【问题描述】:

我已经复制了这篇文章的所有代码 Dropdown in Django Model

我必须做什么才能使此列表可见? 当我运行 manage.py makemigrations 或 managepy migrate 时,它​​告诉我没有任何变化。

我的代码。 views.py

from django.http import HttpResponse
from django.shortcuts import render

def index(request):
  return HttpResponse('<h1>Witamy w aplikacji dla najlepszych inwestorów!</h1>')

  class CreateMyModelView(CreateView):
    model = MyModel
    form_class = MyModelForm
    template_name = 'myapp/template.html'
    success_url = 'myapp/success.html'

models.py

from django.db import models
from multiselectfield import MultiSelectField

COLOR_CHOICES = (
    ('green','GREEN'),
    ('blue', 'BLUE'),
    ('red','RED'),
    ('orange','ORANGE'),
    ('black','BLACK'),
)

class MyModel(models.Model):
  color = models.CharField(max_length=6, choices=COLOR_CHOICES, default='green')

forms.py

class MyModelForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ['color']

template.html

<form action="" method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Create" />
</form>

一切都是一样的,当我运行我的服务器时 only this appears

可能是什么问题?

【问题讨论】:

  • 您不会触发您的CreateMyModelView,而是您的index 视图。

标签: python django drop-down-menu


【解决方案1】:

您必须将 urls.py 中的视图路由到 CreateMyModelView 以便可以访问它。您现在只在索引视图方法上返回一个 HttpResponse。

您可以将CreateView 更改为索引视图,如下所示:

from .views import CreateMyModelView

...
    path('', CreateMyModelView.as_view(), name='create_my_model_view')
...

【讨论】:

  • 感谢您的回复,现在出现这样的错误 path('', CreateMyModelView.as_view(), name='create_my_model_view'), NameError: name 'CreateMyModelView' is not defined
  • @Kokopas 您还必须在 urls.py 中导入您在 views.py 中定义的类。
  • 我们不是已经将它与您发布的上面的行一起导入了吗?
  • @Kokopas 不,你总是必须像这样导入它:from some_app.views import AboutView 在这里阅读更多:link
猜你喜欢
  • 2014-08-26
  • 2021-11-29
  • 1970-01-01
  • 2016-08-19
  • 2011-02-27
  • 1970-01-01
  • 2018-02-03
  • 2012-02-10
  • 1970-01-01
相关资源
最近更新 更多