python - 如何从 Subjects 模型中获取对象的 id?
问题描述
我想在主题模型中为该特定对象关联一个帖子,但我无法弄清楚(views.py 中的错误)。对于像我这样的初学者,感谢您的帮助。
模型.py
class Subjects(models.Model):
title = models.CharField(max_length=200)
slug = AutoSlugField(populate_from=['title'], max_length=250, unique=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return f"{self.title}"
@property
def posts(self):
return Post.objects.filter(subject=self)
class Post(models.Model):
subject = models.ForeignKey(
Subjects, on_delete=models.CASCADE, related_name='subject_model')
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = RichTextField(blank=True, null=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
视图.py
class PostCreateView(LoginRequiredMixin, CreateView):
template_name = 'post/post_create.html'
model = Post
fields = ['body']
success_url = '/'
def form_valid(self, form):
form.instance.author = self.request.user
form.instance.subject_id = self.kwargs['id'] # error here
form.save()
return super(PostCreateView, self).form_valid(form)
网址.py
urlpatterns = [
path('', views.CourseList.as_view(), name='course_list'),
path('create_subject', views.SubjectCreateView.as_view(), name='create_subject'),
# register
path('register/', views.register, name='register'),
# detailview
path('<int:id>/', views.SubjectDetailView.as_view(), name='subject-detail'),
# post create view
path('post/new/',
views.PostCreateView.as_view(), name='post-create')
]
错误
/post/new/ 'id' 处的 KeyError
解决方案
推荐阅读
- javascript - 有人可以解释一下这个 for 循环是如何工作的吗?
- javascript - 两个同时长轮询和长轮询禁用 ajax 请求
- javascript - 定位玩家手
- java - VSCode Java 智能感知不适用于插件 vscjava.vscode-java-pack
- tensorflow - 来自 tf.keras 的 VGG19 不支持索引
- php - php curl post未处理,就像没有数据的get
- python-3.x - 按一列数值对csv数据进行排序
- c# - 如何使用 ObjectListView 库处理单击事件?
- firebase - 正确读取、使用 Firebase 数据以及使用 React Native 进行编写
- javascript - Python Eel - Javascript 过早运行