Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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-表单提交后无法在管理员中检索用户名_Python_Django - Fatal编程技术网

Python Django-表单提交后无法在管理员中检索用户名

Python Django-表单提交后无法在管理员中检索用户名,python,django,Python,Django,我有一个表单,当用户提交表单时,我需要当前登录的用户自动填充到django管理员中。我希望当前用户的用户名填充在django admin中显示为user的列中。附上截图 如何使用当前代码正确执行该操作 我使用的自定义用户模型位于来自用户的中。如果有帮助,模型将导入CustomUser 我非常感谢你的帮助,干杯 用户配置文件/admin.py 用户_profile/views.py 用户配置文件/forms.py html 我想你只需要在admin.py注册你的用户模型。。 像 admin.si

我有一个表单,当用户提交表单时,我需要当前登录的用户自动填充到django管理员中。我希望当前用户的用户名填充在django admin中显示为
user
的列中。附上截图

如何使用当前代码正确执行该操作

我使用的自定义用户模型位于来自用户的
中。如果有帮助,模型将导入CustomUser

我非常感谢你的帮助,干杯

用户配置文件/admin.py 用户_profile/views.py 用户配置文件/forms.py html
我想你只需要在
admin.py
注册你的用户模型。。 像

admin.site.register(CustomUser)


希望对您有所帮助。

我想您只需在
admin.py
注册您的用户模型即可。。 像

admin.site.register(CustomUser)


希望对您有所帮助。

免责声明:我不确定您的代码是否正确。如果工作正常,这也可以:)

def change_视图(请求):
表单=家庭表单(request.POST或None)
用户_profile=Listing.objects.all
user=request.user
如果form.is_有效():
listing_instance=form.save()#“这将返回'listing'实例”
清单_instance.user=user#分配“user”实例
清单_instance.save()#调用模型的“save()”方法
form=HomeForm()
上下文={
“表单”:表单,“用户配置文件”:用户配置文件
}

return render(请求“myaccount.html”,context)
免责声明:我不确定您的代码是否正确。如果工作正常,这也可以:)

def change_视图(请求):
表单=家庭表单(request.POST或None)
用户_profile=Listing.objects.all
user=request.user
如果form.is_有效():
listing_instance=form.save()#“这将返回'listing'实例”
清单_instance.user=user#分配“user”实例
清单_instance.save()#调用模型的“save()”方法
form=HomeForm()
上下文={
“表单”:表单,“用户配置文件”:用户配置文件
}

return render(request,“myaccount.html”,context)
感谢您的快速响应,我添加了我收到的
django.contrib.admin.sites.AlreadyRegistered:model CustomUser已经注册了
我是不是遗漏了什么?在
admin.site.unregister(CustomUser)
之前执行
admin.site.register(CustomUser)
感谢您的快速响应,我补充说我收到了
django.contrib.admin.sites.AlreadyRegistered:model CustomUser已经注册了
我是不是遗漏了什么?在
admin.site.unregister(CustomUser)
之前执行
admin.site.register(CustomUser)
完美。谢谢你,我的朋友!完美的谢谢你,我的朋友!
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin


from user_profile.forms import HomeForm
from users.forms import CustomUserCreationForm, CustomUserChangeForm

from user_profile.models import Listing
from users.models import CustomUser


# Register models here.

class UserProfileAdmin(admin.ModelAdmin):
    list_display = ['name', 'address', 'zip_code', 'mobile_number', 'created', 'updated', 'get_username']
    list_filter = ['name', 'zip_code', 'created', 'updated',]

    def get_username(self, obj):
        if obj.user is not None:
            return obj.user.username
        return '-'
    get_username.short_description = 'User'

admin.site.register(Listing, UserProfileAdmin)


#user_profile/models
from django.contrib import auth
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import AbstractUser, UserManager
from django.contrib.auth.models import BaseUserManager
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.conf import settings
from users.forms import CustomUserCreationForm, CustomUserChangeForm
from users.models import CustomUser

class Listing (models.Model):

#    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE)
    created =  models.DateTimeField(auto_now_add=True, null=True)
    updated = models.DateTimeField(auto_now=True)
    name = models.CharField(max_length=100)
    address = models.CharField(max_length=100)
    zip_code = models.CharField(max_length=100)
    mobile_number = models.CharField(max_length=100)
#    cc_number = models.CharField(max_length=100)
#    cc_expiration = models.CharField(max_length=100)
#    cc_cvv = models.CharField(max_length=100)
#    objects = ListingManager()

    def get_username(self):
        return self.user.username

def create_profile(sender, **kwargs):
    if kwargs['created']:
        user_profile = Listing.objects.create(user=kwargs['instance'])

post_save.connect(create_profile, sender=CustomUser)
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect
from django.conf import settings
from django.views.generic.edit import FormView
from django.views.generic.edit import UpdateView
from django.views.generic import TemplateView
from .forms import HomeForm
from users.forms import CustomUserCreationForm, CustomUserChangeForm
from .models import Listing
from users.models import CustomUser
from django.urls import reverse_lazy
from django.utils import six
from django.utils.translation import ugettext as _
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from avatar.forms import PrimaryAvatarForm, DeleteAvatarForm, UploadAvatarForm
from avatar.models import Avatar
from avatar.signals import avatar_updated, avatar_deleted
from avatar.utils import (get_primary_avatar, get_default_avatar_url,
                          invalidate_cache)


def change_view(request):
    form = HomeForm(request.POST or None)
    user_profile = Listing.objects.all
    user = request.user

    if form.is_valid():
        form.save()
        form = HomeForm()

    context = {
        'form': form, 'user_profile': user_profile 
    }

    return render(request, "myaccount.html", context)
import os

from django import forms
from django.forms import ModelForm

from django.forms import widgets
from django.utils import six
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from django.template.defaultfilters import filesizeformat

from avatar.conf import settings
from avatar.models import Avatar
from .models import Listing


class HomeForm(forms.ModelForm):

#    user = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'CVV', 'class': 'form-control'}))
    created = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'CVV', 'class': 'form-control'}))    
    name = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'Full Name', 'class': 'form-control'}))
    address = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'Address', 'class': 'form-control'}))
    zip_code = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'Zipcode', 'class': 'form-control'}))
    mobile_number = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'Mobile Number', 'class': 'form-control'}))
    cc_number = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'Credit Card', 'class': 'form-control'}))
    cc_expiration = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'Expiration Date', 'class': 'form-control'}))
    cc_cvv = forms.CharField(required=False, label='', max_length=100,  widget=forms.TextInput(attrs={'placeholder': 'CVV', 'class': 'form-control'}))

    class Meta:
        model = Listing
        fields = ['name', 'address', 'zip_code', 'mobile_number']
 <form role="form" action="" method="post">
{% csrf_token %}
{{ form.errors }}   
{{ form.name }}
{{ form.address }}
{{ form.zip_code }}
{{ form.mobile_number }}
<button class="btn btn-primary btn-success btn-round btn-extend" type="submit" value="Submit"><i class="zmdi zmdi-favorite-outline6"></i>Submit</button>
</form> 
AUTH_USER_MODEL = 'users.CustomUser'
def change_view(request):
    form = HomeForm(request.POST or None)
    user_profile = Listing.objects.all
    user = request.user

    if form.is_valid():
        listing_instance = form.save()  # "this will return the 'Listing' instance"
        listing_instance.user = user # assign 'user' instance
        listing_instance.save() # calling 'save()' method of model
        form = HomeForm()

    context = {
        'form': form, 'user_profile': user_profile
    }

    return render(request, "myaccount.html", context)