은 내가 posts
응용 프로그램을 만들어이어떻게 django에서 사용자를 삭제 한 후 'username'을 유지할 수 있습니까?
from django.db import models
from django.conf import settings
from posts.models import Post
class Comment(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL)
post = models.ForeignKey(Post)
content = models.CharField(max_length=400)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ('-created_at',)
def __str__(self):
return self.content
같은 comment
모델을 가지고 그리고 몇 가지 의견 로그인 및 게시 : 나는 사용자 rightx2
, 그것은 null
또는 None
을하게 삭제 한 후
나쁘게도 order
님의 댓글이 변경되었습니다.
아직 username
을 만들고 계속 주문하고 싶습니다.
아이디어가 있으십니까? 대신, Comment
모델 author
속성을 설정 CharField
을 시도하고이 Comment.author
속성은 저자 이름에 author
이 그것을 만들 때마다 동일 수 있도록 views.py
에 귀하의 코멘트 기능에 할당 행을 추가 models.ForeignKey
를 사용
사용자 이름을 저장할 다른 필드를 설정해야한다는 것을 알고 있습니다. 그러나 어느 쪽이 선호됩니까? 'on_delete = models.SET_NULL,'또는'on_delete = models.DO_NOTHING'? – user3595632
당신의 경우에 따라'SET_NULL'과'is_null = True'를 사용하는 것이 더 합리적이라고 말할 수 있습니다. DO_NOTHING과 함께 사용하면 db에 ON DELETE 제약 조건을 추가해야합니다 – Shaikhul