Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django(?P<;pk>;\d+;)在URL';它部分起作用了_Python_Django_Django Urls - Fatal编程技术网

Python Django(?P<;pk>;\d+;)在URL';它部分起作用了

Python Django(?P<;pk>;\d+;)在URL';它部分起作用了,python,django,django-urls,Python,Django,Django Urls,我将此作为我的用户应用程序URL。py: from django.conf.urls import url from users import views app_name = 'users' urlpatterns = [ url(r'^$',views.UserListView.as_view(),name='user_list'), url(r'^(?P<pk>\d+)/$',views.UserProfileView.as_view(),name='use

我将此作为我的用户应用程序URL。py:

from django.conf.urls import url
from users import views

app_name = 'users'

urlpatterns = [
    url(r'^$',views.UserListView.as_view(),name='user_list'),
    url(r'^(?P<pk>\d+)/$',views.UserProfileView.as_view(),name='user_profile'),
    url(r'^(?P<pk>\d+)/edit$',views.UserEditProfileView.as_view(),name='user-profile-edit'),
    url(r'^login/$',views.user_login,name='user_login'),
    url(r'^logout/$',views.user_logout,name='user_logout'),
    url(r'^register/$',views.register,name='register'),
]
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
from users import views
from feed import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',views.HomeView.as_view(),name='index'),
    url(r'^user/',include('users.urls',namespace='users')),
    url(r'^feed/',include('feed.urls',namespace='feed')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.shortcuts import render,get_object_or_404
from users.forms import UserForm,UserProfileForm
from users.models import UserProfileInfo
from feed.models import UserPost

from django.contrib.auth.models import User

from django.contrib.auth import authenticate,login,logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required

from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import (TemplateView,ListView,
                                    DetailView,CreateView,
                                    UpdateView,DeleteView)

# Create your views here.
def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username,password=password)

        if user:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect(reverse('index'))
            else:
                return HttpResponse("Account now active")

        else:
            print("Login Unsuccessful")
            return HttpResponse("Username and/or password are not correct")

    else:
        return render(request,'login.html',{})

def register(request):
    registered = False

    if request.method == 'POST':
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES['profile_pic']

            profile.save()
            registered = True
        else:
            print(user_form.errors,profile_form.errors)
    else:
        user_form = UserForm()
        profile_form = UserProfileForm()

    return render(request,'register.html',{
                                        'user_form':user_form,
                                        'profile_form':profile_form,
                                        'registered':registered
                                        })

@login_required
def user_logout(request):
    logout(request)
    return HttpResponseRedirect(reverse('index'))

class UserListView(ListView):
    model = UserProfileInfo
    ordering = ['-join_date']

    def get_context_data(self, **kwargs):
        context = super(UserListView, self).get_context_data(**kwargs)
        context['user_list'] = User.objects.all()
        return context

class UserProfileView(DetailView):
    model = UserProfileInfo
    template = 'users/userprofile.html'

    def get_context_data(self, **kwargs):
        context = super(UserProfileView, self).get_context_data(**kwargs)
        context['user_post'] = UserPost.objects.all()
        return context

class UserEditProfileView(LoginRequiredMixin,UpdateView):
    login_url = '/login/'
    redirect_field_name = '/users_detail.html'
    form_class = UserProfileForm
    model = UserProfileInfo
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from users.choices import *

# Create your models here.
class UserProfileInfo(models.Model):
    user = models.OneToOneField(User)

    first_name = models.CharField(max_length=50,default='User')
    join_date = models.DateTimeField(default=timezone.now)
    profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
    location = models.CharField(max_length=150)
    title = models.CharField(max_length=250)
    user_type = models.IntegerField(choices=USER_TYPE_CHOICES,default=1)
    website = models.URLField(max_length=100,blank=True)
    about = models.TextField(max_length=500,default='about')
    twitter = models.CharField(max_length=50,blank=True)
    dribbble = models.CharField(max_length=50,blank=True)
    github = models.CharField(max_length=50,blank=True)

    def __str__(self):
        return self.user.username
因此,基本上,pk 3用户的配置文件位于
http://127.0.0.1:8000/user/2/
而不是
http://127.0.0.1:8000/user/3/
(或者反过来说,不太确定)

这里还有我的项目URL:

from django.conf.urls import url
from users import views

app_name = 'users'

urlpatterns = [
    url(r'^$',views.UserListView.as_view(),name='user_list'),
    url(r'^(?P<pk>\d+)/$',views.UserProfileView.as_view(),name='user_profile'),
    url(r'^(?P<pk>\d+)/edit$',views.UserEditProfileView.as_view(),name='user-profile-edit'),
    url(r'^login/$',views.user_login,name='user_login'),
    url(r'^logout/$',views.user_logout,name='user_logout'),
    url(r'^register/$',views.register,name='register'),
]
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
from users import views
from feed import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',views.HomeView.as_view(),name='index'),
    url(r'^user/',include('users.urls',namespace='users')),
    url(r'^feed/',include('feed.urls',namespace='feed')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.shortcuts import render,get_object_or_404
from users.forms import UserForm,UserProfileForm
from users.models import UserProfileInfo
from feed.models import UserPost

from django.contrib.auth.models import User

from django.contrib.auth import authenticate,login,logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required

from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import (TemplateView,ListView,
                                    DetailView,CreateView,
                                    UpdateView,DeleteView)

# Create your views here.
def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username,password=password)

        if user:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect(reverse('index'))
            else:
                return HttpResponse("Account now active")

        else:
            print("Login Unsuccessful")
            return HttpResponse("Username and/or password are not correct")

    else:
        return render(request,'login.html',{})

def register(request):
    registered = False

    if request.method == 'POST':
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES['profile_pic']

            profile.save()
            registered = True
        else:
            print(user_form.errors,profile_form.errors)
    else:
        user_form = UserForm()
        profile_form = UserProfileForm()

    return render(request,'register.html',{
                                        'user_form':user_form,
                                        'profile_form':profile_form,
                                        'registered':registered
                                        })

@login_required
def user_logout(request):
    logout(request)
    return HttpResponseRedirect(reverse('index'))

class UserListView(ListView):
    model = UserProfileInfo
    ordering = ['-join_date']

    def get_context_data(self, **kwargs):
        context = super(UserListView, self).get_context_data(**kwargs)
        context['user_list'] = User.objects.all()
        return context

class UserProfileView(DetailView):
    model = UserProfileInfo
    template = 'users/userprofile.html'

    def get_context_data(self, **kwargs):
        context = super(UserProfileView, self).get_context_data(**kwargs)
        context['user_post'] = UserPost.objects.all()
        return context

class UserEditProfileView(LoginRequiredMixin,UpdateView):
    login_url = '/login/'
    redirect_field_name = '/users_detail.html'
    form_class = UserProfileForm
    model = UserProfileInfo
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from users.choices import *

# Create your models here.
class UserProfileInfo(models.Model):
    user = models.OneToOneField(User)

    first_name = models.CharField(max_length=50,default='User')
    join_date = models.DateTimeField(default=timezone.now)
    profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
    location = models.CharField(max_length=150)
    title = models.CharField(max_length=250)
    user_type = models.IntegerField(choices=USER_TYPE_CHOICES,default=1)
    website = models.URLField(max_length=100,blank=True)
    about = models.TextField(max_length=500,default='about')
    twitter = models.CharField(max_length=50,blank=True)
    dribbble = models.CharField(max_length=50,blank=True)
    github = models.CharField(max_length=50,blank=True)

    def __str__(self):
        return self.user.username
用户应用程序视图。py:

from django.conf.urls import url
from users import views

app_name = 'users'

urlpatterns = [
    url(r'^$',views.UserListView.as_view(),name='user_list'),
    url(r'^(?P<pk>\d+)/$',views.UserProfileView.as_view(),name='user_profile'),
    url(r'^(?P<pk>\d+)/edit$',views.UserEditProfileView.as_view(),name='user-profile-edit'),
    url(r'^login/$',views.user_login,name='user_login'),
    url(r'^logout/$',views.user_logout,name='user_logout'),
    url(r'^register/$',views.register,name='register'),
]
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
from users import views
from feed import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',views.HomeView.as_view(),name='index'),
    url(r'^user/',include('users.urls',namespace='users')),
    url(r'^feed/',include('feed.urls',namespace='feed')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.shortcuts import render,get_object_or_404
from users.forms import UserForm,UserProfileForm
from users.models import UserProfileInfo
from feed.models import UserPost

from django.contrib.auth.models import User

from django.contrib.auth import authenticate,login,logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required

from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import (TemplateView,ListView,
                                    DetailView,CreateView,
                                    UpdateView,DeleteView)

# Create your views here.
def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username,password=password)

        if user:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect(reverse('index'))
            else:
                return HttpResponse("Account now active")

        else:
            print("Login Unsuccessful")
            return HttpResponse("Username and/or password are not correct")

    else:
        return render(request,'login.html',{})

def register(request):
    registered = False

    if request.method == 'POST':
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES['profile_pic']

            profile.save()
            registered = True
        else:
            print(user_form.errors,profile_form.errors)
    else:
        user_form = UserForm()
        profile_form = UserProfileForm()

    return render(request,'register.html',{
                                        'user_form':user_form,
                                        'profile_form':profile_form,
                                        'registered':registered
                                        })

@login_required
def user_logout(request):
    logout(request)
    return HttpResponseRedirect(reverse('index'))

class UserListView(ListView):
    model = UserProfileInfo
    ordering = ['-join_date']

    def get_context_data(self, **kwargs):
        context = super(UserListView, self).get_context_data(**kwargs)
        context['user_list'] = User.objects.all()
        return context

class UserProfileView(DetailView):
    model = UserProfileInfo
    template = 'users/userprofile.html'

    def get_context_data(self, **kwargs):
        context = super(UserProfileView, self).get_context_data(**kwargs)
        context['user_post'] = UserPost.objects.all()
        return context

class UserEditProfileView(LoginRequiredMixin,UpdateView):
    login_url = '/login/'
    redirect_field_name = '/users_detail.html'
    form_class = UserProfileForm
    model = UserProfileInfo
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from users.choices import *

# Create your models here.
class UserProfileInfo(models.Model):
    user = models.OneToOneField(User)

    first_name = models.CharField(max_length=50,default='User')
    join_date = models.DateTimeField(default=timezone.now)
    profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
    location = models.CharField(max_length=150)
    title = models.CharField(max_length=250)
    user_type = models.IntegerField(choices=USER_TYPE_CHOICES,default=1)
    website = models.URLField(max_length=100,blank=True)
    about = models.TextField(max_length=500,default='about')
    twitter = models.CharField(max_length=50,blank=True)
    dribbble = models.CharField(max_length=50,blank=True)
    github = models.CharField(max_length=50,blank=True)

    def __str__(self):
        return self.user.username
用户应用程序模型。py:

from django.conf.urls import url
from users import views

app_name = 'users'

urlpatterns = [
    url(r'^$',views.UserListView.as_view(),name='user_list'),
    url(r'^(?P<pk>\d+)/$',views.UserProfileView.as_view(),name='user_profile'),
    url(r'^(?P<pk>\d+)/edit$',views.UserEditProfileView.as_view(),name='user-profile-edit'),
    url(r'^login/$',views.user_login,name='user_login'),
    url(r'^logout/$',views.user_logout,name='user_logout'),
    url(r'^register/$',views.register,name='register'),
]
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
from users import views
from feed import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',views.HomeView.as_view(),name='index'),
    url(r'^user/',include('users.urls',namespace='users')),
    url(r'^feed/',include('feed.urls',namespace='feed')),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.shortcuts import render,get_object_or_404
from users.forms import UserForm,UserProfileForm
from users.models import UserProfileInfo
from feed.models import UserPost

from django.contrib.auth.models import User

from django.contrib.auth import authenticate,login,logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required

from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import (TemplateView,ListView,
                                    DetailView,CreateView,
                                    UpdateView,DeleteView)

# Create your views here.
def user_login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username,password=password)

        if user:
            if user.is_active:
                login(request,user)
                return HttpResponseRedirect(reverse('index'))
            else:
                return HttpResponse("Account now active")

        else:
            print("Login Unsuccessful")
            return HttpResponse("Username and/or password are not correct")

    else:
        return render(request,'login.html',{})

def register(request):
    registered = False

    if request.method == 'POST':
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES['profile_pic']

            profile.save()
            registered = True
        else:
            print(user_form.errors,profile_form.errors)
    else:
        user_form = UserForm()
        profile_form = UserProfileForm()

    return render(request,'register.html',{
                                        'user_form':user_form,
                                        'profile_form':profile_form,
                                        'registered':registered
                                        })

@login_required
def user_logout(request):
    logout(request)
    return HttpResponseRedirect(reverse('index'))

class UserListView(ListView):
    model = UserProfileInfo
    ordering = ['-join_date']

    def get_context_data(self, **kwargs):
        context = super(UserListView, self).get_context_data(**kwargs)
        context['user_list'] = User.objects.all()
        return context

class UserProfileView(DetailView):
    model = UserProfileInfo
    template = 'users/userprofile.html'

    def get_context_data(self, **kwargs):
        context = super(UserProfileView, self).get_context_data(**kwargs)
        context['user_post'] = UserPost.objects.all()
        return context

class UserEditProfileView(LoginRequiredMixin,UpdateView):
    login_url = '/login/'
    redirect_field_name = '/users_detail.html'
    form_class = UserProfileForm
    model = UserProfileInfo
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from users.choices import *

# Create your models here.
class UserProfileInfo(models.Model):
    user = models.OneToOneField(User)

    first_name = models.CharField(max_length=50,default='User')
    join_date = models.DateTimeField(default=timezone.now)
    profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
    location = models.CharField(max_length=150)
    title = models.CharField(max_length=250)
    user_type = models.IntegerField(choices=USER_TYPE_CHOICES,default=1)
    website = models.URLField(max_length=100,blank=True)
    about = models.TextField(max_length=500,default='about')
    twitter = models.CharField(max_length=50,blank=True)
    dribbble = models.CharField(max_length=50,blank=True)
    github = models.CharField(max_length=50,blank=True)

    def __str__(self):
        return self.user.username
更新:

新用户app models.py:

class UserProfile(models.Model):
    user = models.OneToOneField(User)

    first_name = models.CharField(max_length=50,default='User')
    join_date = models.DateTimeField(default=timezone.now)
    profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
    location = models.CharField(max_length=150)
    title = models.CharField(max_length=250)
    user_type = models.IntegerField(choices=USER_TYPE_CHOICES,default=1)
    website = models.URLField(max_length=100,blank=True)
    about = models.TextField(max_length=500,default='about')
    twitter = models.CharField(max_length=50,blank=True)
    dribbble = models.CharField(max_length=50,blank=True)
    github = models.CharField(max_length=50,blank=True)

    @receiver(post_save, sender=User)
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            UserProfile.objects.create(user=instance)

    @receiver(post_save, sender=User)
    def save_user_profile(sender, instance, **kwargs):
        instance.userprofile.save()

    def __str__(self):
        return self.user.username
新错误:

IntegrityError at /user/register/
UNIQUE constraint failed: users_userprofile.user_id
错误回溯:

Traceback (most recent call last):
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 328, in execute
    return Database.Cursor.execute(self, query, params)
sqlite3.IntegrityError: UNIQUE constraint failed: users_userprofile.user_id

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/garrettlove/Desktop/evverest/users/views.py", line 58, in register
    profile.save()
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/models/base.py", line 807, in save
    force_update=force_update, update_fields=update_fields)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/models/base.py", line 837, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/models/base.py", line 923, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/models/base.py", line 962, in _do_insert
    using=using, raw=raw)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/models/query.py", line 1076, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1099, in execute_sql
    cursor.execute(sql, params)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/backends/utils.py", line 80, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/backends/utils.py", line 65, in execute
    return self.cursor.execute(sql, params)
  File "/anaconda/envs/test/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 328, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: UNIQUE constraint failed: users_userprofile.user_id
url不应该是:

url(r'^user/(?P<pk>\d+)/$', views.UserProfileView.as_view(), name='user_profile'),
url(r'^user/(?P\d+)/$,views.UserProfileView.as_view(),name='user_profile'),

您的
url.py
错误。无论何时您呼叫
http://127.0.0.1:8000/user/3/
它调用视图
users.views.UserProfileView
,而这个
UserProfileView
没有任何
userID
,您需要将其传入
url.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',views.HomeView.as_view(),name='index'),
    url(r'^user/(?P<pk>\d+)/',include('users.urls',namespace='users')),
    url(r'^feed/',include('feed.urls',namespace='feed')),
]
urlpatterns=[
url(r“^admin/”,admin.site.url),
url(r'^$',views.HomeView.as_view(),name='index'),
url(r'^user/(?P\d+/),包括('users.url',namespace='users'),
url(r“^feed/”,包括('feed.url',namespace='feed'),
]

您所做的一切都是正确的。但是错误是不言自明的。您的
UserProfileInfo
User
模型相关。所以一旦你创建了一个新用户。将创建新的userprofileinfo,但不会自动创建。因此,它给出了错误

每当创建一个新用户时,您需要发送一个信号来创建一个新的userprofileinfo


最后,我更改了模型名称,因此相应地进行了更改。现在,它可以完美地工作。

我不这么认为,因为我在项目URL中包含了这个文件。很抱歉,我刚刚编辑了这篇文章以显示这一点。@Garrett如果用户3的配置文件存在,您可以签入数据库吗?如果用户配置文件不存在,您还应在代码中编写创建用户配置文件的逻辑。请添加
views.py
models.py
您的url是正确的,您只需修改
UserProfileView
@astikan并添加它们
url
是正确的,需要在
views.py
中进行修改。我很确定我在这里传递了我模板中的
用户ID
很抱歉,我没有在帖子中提到这一点。这是
UserProfileInfo
模型的通用视图。因此,您需要将该pk传递给
{%url%}
,而不是
用户的pk
<代码>还要确保
用户
存在一个
用户档案信息
,如下所述:@AstikAnand@Garret,您是否尝试过此解决方案??它对你有用吗?我想我正确地执行了,但是我得到了这个错误:
IntegrityError at/user/register/UNIQUE constraint失败:users\u userprofileinfo.user\u id
我告诉过你,我已经将模型名称从
userprofileinfo
更改为
UserProfile
保持检查。从django.db.models.signals导入post\u保存自django.dispatch导入接收器##此处的模型字段@receiver(post_save,sender=User)def create_User_profile(sender,instance,created,**kwargs):如果创建:UserProfileInfo.objects.create(User=instance)@receiver(post_save,sender=User)def save_User_profile(sender,instance,**kwargs):instance.UserProfileInfo.save()def u str_u(self):return self.user.username`I'm pretty我在上次评论中更改了模型吗?我将您的
UserProfile
更改为
UserProfileInfo
。你不是这个意思吗?