小编Ala*_*air的帖子

错误通用详细信息视图必须使用对象pk或slug调用,即使使用pk也是如此

我正在尝试更新具有外键字段的视图的记录,因为我遇到了错误,因为我尝试更新没有外键字段的另一个模型并且它工作得非常好.

还有其他这样的排队,但在我的情况下,我正在通过PK.

urls.py

 urlpatterns = [
        url(r'^info/(?P<studentpk>\d+)/update/$', views.updatestudent.as_view(), name="updatestudent"),

]
Run Code Online (Sandbox Code Playgroud)

views.py

class updatestudent(UpdateView):
    model = Student
    form_class = forms.studentform
    template_name = "temp/updatestudent.html"

    def get_success_url(self):
        return reverse("courses")
Run Code Online (Sandbox Code Playgroud)

updatestudent.html

<form action="" method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Update" />
</form>
Run Code Online (Sandbox Code Playgroud)

models.py

class Student(models.Model):
    classfk = models.ForeignKey(Class)
    name = models.CharField(max_length=100)
    birth_date = models.DateField('Birthdate')

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

错误

AttributeError: Generic detail view updatestudent must be called with either an object pk or a slug.
Run Code Online (Sandbox Code Playgroud)

python django django-views django-class-based-views

1
推荐指数
1
解决办法
2586
查看次数

django - 该页面未正确重定向

我有一个检查用户配置文件的中间件.如果auth用户没有配置文件,则重定向到用户配置文件.我的浏览器显示错误The page isn’t redirecting properly.

class Check(MiddlewareMixin):
    def process_request(self, request):
        if request.user.is_authenticated():
            user = request.user
            try:
                profile = Profile.objects.get(user_id = user)
                if profile:
                    pass
            except ObjectDoesNotExist:
                return HttpResponseRedirect('/accounts/profile/')
Run Code Online (Sandbox Code Playgroud)

我用了django-allauth.

django django-middleware django-allauth

1
推荐指数
1
解决办法
1271
查看次数

无法在Django 1.11.4中导入模式

我的项目urls.py如下:

from django.conf.urls import include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^myapp/', include('myapp.urls')),
]
Run Code Online (Sandbox Code Playgroud)

我的应用程序urls.py如下所示:

from django.conf.urls import patterns, include, url

urlpatterns = patterns('', url(r'^hello/', 'myapp.views.hello', name = 'hello'),)
Run Code Online (Sandbox Code Playgroud)

现在,一旦我尝试运行它,它将给我以下错误:

 from django.conf.urls import patterns, include, url
ImportError: cannot import name 'patterns'
Run Code Online (Sandbox Code Playgroud)

python django

1
推荐指数
1
解决办法
1658
查看次数

Django - 在 CreateView 中更改帖子数据

我正在尝试更改发布请求中的值,但出现以下错误:

IntegrityError: null value in column "owner" violates not-null constraint
DETAIL:  Failing row contains (30, 123, G, null) <--> (index, number, type, owner)
Run Code Online (Sandbox Code Playgroud)

表格本身:

<form method="post">
    {% csrf_token %}
    {{form.number}}
    {{form.type}}
    <input type="hidden" value="{{variable}}" name="owner">
    <button type="submit">Save</button>
</form>
Run Code Online (Sandbox Code Playgroud)

request.POST 数据:

<QueryDict: {'csrfmiddlewaretoken': ['TN3yNiGcvAso6V1UYZDHpyIQ1sNTMqDICPSqX2sftVpZfX6drambOkzoGBECLKcN'], 'number': ['123'], 'type': ['G'], 'owner': ['']}>
Run Code Online (Sandbox Code Playgroud)

要修改数据:

class NodeCreateView(CreateView):

model = Node
form_class = NodeCreateForm
...

def post(self, request, **kwargs):
    request.POST = request.POST.copy()
    request.POST['owner'] = 2
    return super(NodeCreateView, self).post(request, **kwargs)
Run Code Online (Sandbox Code Playgroud)

更新后的 POST 数据:

<QueryDict: {'csrfmiddlewaretoken': ['TN3yNiGcvAso6V1UYZDHpyIQ1sNTMqDICPSqX2sftVpZfX6drambOkzoGBECLKcN'], 'number': …
Run Code Online (Sandbox Code Playgroud)

python django django-forms

1
推荐指数
1
解决办法
3781
查看次数

如何检查您的模型在Django中没有错误

一位采访者问我,检查你的模型没有错误的命令是什么.

Django有这样的任何类型的命令吗?

python django django-models django-views

1
推荐指数
1
解决办法
60
查看次数

带 wagtail 的 Django 调试工具栏 404

我正在努力开始django-debug-toolbar工作。我已按照安装步骤进行操作,并获得了包含统计信息的侧边栏(例如 2.75 毫秒内的 SQL 1 查询、使用的静态文件 19 个文件、12 个信号的 30 个接收器),这些统计信息似乎是合法的并表明其正在工作。

但是,当我在给定选项卡上单击“获取更多信息”时,我会在浏览器中收到 404 错误,并在控制台中收到此类信息:

"GET /__debug__/render_panel/?store_id=ac74875cfe864b2dab4c6d17c1d1ed5d&panel_id=RequestPanel HTTP/1.1" 404 1791"
Run Code Online (Sandbox Code Playgroud)

网站上的其他页面可以正常工作。

我尝试过各种配置urls.py。这是我目前拥有的:

from __future__ import absolute_import, unicode_literals

from django.conf import settings
from django.conf.urls import include, url
from django.contrib import admin

from wagtail.wagtailadmin import urls as wagtailadmin_urls
from wagtail.wagtailcore import urls as wagtail_urls
from wagtail.wagtaildocs import urls as wagtaildocs_urls

from search import views as search_views

urlpatterns = [
    url(r'^django-admin/', include(admin.site.urls)),

    url(r'^admin/', include(wagtailadmin_urls)),
    url(r'^documents/', include(wagtaildocs_urls)),

    url(r'^search/$', search_views.search, …
Run Code Online (Sandbox Code Playgroud)

django debugging django-debug-toolbar wagtail

1
推荐指数
1
解决办法
930
查看次数

如果 url 中没有 pk,Django DetailView 显示最后一个

对于基于类的 DetailView,有没有一种方法可以在调用 url 时说“如果未指定 pk”,只需用作MyModel.object.last()对象引用?

url(r'^(?:(?P<pk>\d+)/)?detail/$', views.MyDetailView.as_view()),

class MyDetailView(DetailView):
    model = MyModel
    if self.kwargs['pk'] == False:
       self.object = MyModel.object.last()
Run Code Online (Sandbox Code Playgroud)

我正在运行 Django 1.11

python django django-class-based-views

1
推荐指数
1
解决办法
489
查看次数

如何结合 Django 的“LoginRequiredMixin”和表单工具的“FormPreview”?

LoginRequiredMixin在其他基于类的视图上效果很好。表单工具也FormPreview运行良好。但是当我尝试同时使用两者时,它们LoginRequiredMixin就会被忽略。

如果我使用表单工具Django 文档中最基本的示例,情况也是如此。

我发现两件事很奇怪(但这不一定是原因):

  • “这个 mixin 应该位于继承列表的最左边。” 这听起来像是有一些内部黑客行为,如果有人做了一些不规则的事情,就会崩溃。没有解释为什么。
  • 表单工具视图应该被称为它本身,而不是方法.as_view(),这又不符合标准。

这是一个错误吗?我能做些什么?

python django django-forms django-authentication

1
推荐指数
1
解决办法
300
查看次数

Django REST单元测试TypeError:__ init __()需要1个位置参数但是给出了2个

我用命令启动下面的代码$ python manage.py test,它返回错误:

TypeError: __init__() takes 1 positional argument but 2 were given
Run Code Online (Sandbox Code Playgroud)

据我所知,我只是self去了__init__ method,这个额外的arg来自哪里?我在这里检查了多个答案并查看了django文档,但似乎无法找到我的错误.

是什么造成的?

码:

import requests
import json
from django.contrib.auth.models import User

from django.test import TestCase
from django.test import Client

class BasicFunctionality(TestCase):

    def __init__(self):
        user_name = 'boris_the_blade'
        password = 'boris_the_sneaky_russian'
        self.client = Client()
        self.login_status = self.createUserAndLogin(user_name, password)

    def createUserAndLogin(self, user_name, password):
        self.user = User.objects.create_user(username=user_name, password=password)
        login = self.client.login(username=user_name, password=password)

        return login

    def test_login(self):
        self.assertTrue(self.login_status)
Run Code Online (Sandbox Code Playgroud)

全终端输出:

Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python django

1
推荐指数
1
解决办法
183
查看次数

需要从模板中的django获取实例id

我是 django 的新手,我有一个问题。我有一个 Django 表单

class MyModelForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ['id', 'field1', 'field2', 'field3']
        localized_fields = ('id', 'field1', 'field2', 'field3')
Run Code Online (Sandbox Code Playgroud)

当我尝试输出时id它不起作用,但它与其他人一起工作。

{{form.id.value}}
Run Code Online (Sandbox Code Playgroud)

id如何从表单中获取模板中的值?

python django django-templates django-forms

1
推荐指数
1
解决办法
3501
查看次数