python - 需要在作者评论部分设置 current.username
问题描述
我已经创建了Comment
部分。主要目标是只有注册用户才能发表评论,并且只能通过他们的用户名发表评论。
目前,我对帖子发布者(用户名)有疑问。在屏幕截图上,您可以看到,我可以选择从用户:JOHUA发表评论,但我目前是从用户:JOHN登录的
我需要为用户设置仅从他的用户名发表评论的权限(也许我应该删除models.py、forms.py和admin.pyusername
中的变量,并默认设置为 user: username,或者你知道如何删除其他用户名来自用户名列,因此注册用户只能选择他的用户名。
我一直在为这个问题困惑很长时间,所以绝对需要社区的帮助!
这是一些代码:
models.py
class Comment(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
username = models.ForeignKey(User, on_delete=models.CASCADE)
email = models.EmailField()
body = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
class Meta:
ordering = ['created_on']
def __str__(self):
return 'Comment {} by {}'.format(self.body, self.username)
forms.py
from .models import Comment
from django import forms
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['username', 'email', 'body']
admin.py
from django.contrib import admin
from .models import Post, Category, Comment
class CategoryAdmin(admin.ModelAdmin):
pass
@admin.register(Comment)
class CommentAdmin(admin.ModelAdmin):
list_display = ('username', 'body', 'post', 'created_on', 'active')
list_filter = ('active', 'created_on')
search_fields = ('username', 'email', 'body')
actions = ['approve_comments']
def approve_comments(self, request, queryset):
queryset.update(active=True)
admin.site.register(Post)
admin.site.register(Category, CategoryAdmin)
解决方案
推荐阅读
- typescript - nestjs 单元测试 createTestingModule 依赖注入
- javascript - 从检查元素是否作为另一个子元素存在于 Javascript 中删除错误
- excel - 如何将文本转换为列并忽略一些分隔符
- django - Django Ckeditor 将richtextfield中的不完整数据保存到cookies或服务器
- python - scrapy CrawlSpider 不遵循带有restrict_xpaths 的链接
- r - R中的抽象文本摘要
- javascript - MVC 交叉点观察者结构
- javascript - 具有内部异步代码和递归 EventListener 创建的 EventListener 的生命周期
- java - C# 和 Java 之间的 Diffie-Hellman 算法
- google-apps-script - 来自 Google Apps 脚本的 LDAP 搜索(最好在表格中)?