我正在尝试更新具有外键字段的视图的记录,因为我遇到了错误,因为我尝试更新没有外键字段的另一个模型并且它工作得非常好.
还有其他这样的排队,但在我的情况下,我正在通过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) 我有一个检查用户配置文件的中间件.如果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.
我的项目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) 我正在尝试更改发布请求中的值,但出现以下错误:
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) 一位采访者问我,检查你的模型没有错误的命令是什么.
Django有这样的任何类型的命令吗?
我正在努力开始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) 对于基于类的 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 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) 我是 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如何从表单中获取模板中的值?