Как исправить объект str не имеет атрибута _meta - PullRequest
2 голосов
/ 01 июля 2019

Я переношу свою модель в проект Django, но генерируется ошибка. Ниже приведен код.Какие должны быть исправления в моем коде, чтобы решить эту проблему

Models.py
from django.db import models
from django.contrib.auth.models import User

# Create your models here.
class UserProfileInfo(models.Model):

    user = models.OneToOneField(User, on_delete=models.CASCADE)

    #addtional
    portfolio_site = models.URLField(blank=True)

    profile_pic = models.ImageField(blank=True,upload_to="profile_pics")

    def __str__(self):
        return (self.user.username)
Forms.py
from django import forms
from django.contrib.auth.models import User
from basic_app.models import UserProfileInfo

class UserForm(forms.ModelForm):
    password = User.CharField(widget=forms.PasswordInput())

    class Meta():
        model = User
        fields = ['username','email', 'password']


class UserProfileInfo(forms.ModelForm):
    class Meta():
        model = UserProfileInfo
        fields=['portfolio_site','profile_pic']     
Admin.py
from django.contrib import admin
from basic_app.models import UserProfileInfo


# Register your models here.
admin.site.register('UserProfileInfo')

Я получаю ошибку атрибута: у объекта 'str' нет атрибута '_meta'

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

Нет необходимости заключать модель в строку, просто введите название модели в admin.py

Admin.py
from django.contrib import admin
from basic_app.models import UserProfileInfo


# Register your models here.
admin.site.register(UserProfileInfo)
2 голосов
/ 01 июля 2019

Параметры admin.site.register(..) [Django-doc] являются моделью или повторяемой моделью; и, возможно, модель администратора. Не строка этой модели.

Таким образом, вы должны передать ссылку на UserProfileInfo, , а не a строку , которая содержит это имя.

Как:

# app/admin.py

from django.contrib import admin
from basic_app.models import UserProfileInfo

# an identifier, <i>not</i> a string
admin.site.register(<b>UserProfileInfo</b>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...