#python #django #database #backend
Вопрос:
#ValueError: "<Profile: Profile object (None)>" needs to have a value for field "id" before this many-to-many relationship can be used.
что такое ошибка значения ,почему я получаю это,
Ошибка значения в /admin/профили/профиль/добавить/
«<Профиль: Объект профиля (отсутствует)>» должен иметь значение для поля «идентификатор», прежде чем можно будет использовать это отношение «многие ко многим».
from django.db import models
from django.contrib.auth.models import User
from django.template.defaultfilters import slugify
# Create your models here.
from . utils import get_random_code
class Profile(models.Model):
first_name = models.CharField(max_length=200, blank=True)
last_name = models.CharField(max_length=200, blank=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(default="no bio...", max_length=300)
email = models.EmailField(max_length=200, blank=True)
country = models.CharField(max_length=200, blank=True)
avatar = models.ImageField(default='avatar.png', upload_to='avatars/')
friends = models.ManyToManyField(User, blank=True, related_name='friends')
slug = models.SlugField(unique=True, blank=True)
updated = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
def save(self, *args ,**kwargs):
ex = False
if self.first_name and self.last_name:
to_slug =slugify(str(self.first_name ) "" str(self.last_name))
ex = Profile.objects.filter(slug =to_slug).exists()
while ex:
to_slug = slugify(to_slug "" str(get_random_code()))
ex = Profile.objects.filter(slug=to_slug).exists()
else:
to_slug = str(self.user)
self.slug=to_slug
super().save(*args ,**kwargs)
#`enter code here`utlis.py file
import uuid
def get_random_code():
code = str(uuid.uuid4())[:8].replace('-', '').lower()
return code
Комментарии:
1. Попробуйте поставить «null=True» в поле «Ваши друзья».
2. ВСЕ еще получаю ту же ошибку после того, как я поставил’ null=True’, есть идеи, что здесь пошло не так!
3. Проблема в вашем пк, объясните, почему это происходит, но если у каждого пользователя будет только один профиль, вы можете сделать так, чтобы один из них был в профиле primary_key, и это может сработать.
4. значит?? это сбивает с толку ??