python - 如何在 django-mptt 中修复没有孩子的父母?
问题描述
我想为每个父母修复 2 个孩子。
模型.py
class CoachingRegistration(MPTTModel):
uid = models.UUIDField(unique=True, editable=False, default=uuid.uuid4)
placement_id = models.CharField(max_length=13)
parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
class MPTTMeta:
order_insertion_by = ['placement_id']
def __str__(self):
return str(self.placement_id)
请帮我解决这个问题。
解决方案
您可以使用表单 form_valid 函数在 createview 中修复此问题
class CoachingRegistrationCreate(LoginRequiredMixin, SuccessMessageMixin, CreateView):
model = CoachingRegistration
form_class = CoachingRegistrationForm
template_name = 'customer/form_coaching_register.html'
def form_valid(self, form):
if 2 > CoachingRegistration.objects.filter(parent=CoachingRegistration.objects.get(coaching_id=form.instance.placement_id)).count():
return super().form_valid(form)
else:
return super().form_invalid(form)
推荐阅读
- excel - 根据列中的值对整个工作表的行进行着色
- android - 当应用程序被杀死时,互联网广播接收器不工作
- c++ - 如何获取 LIST 命令的响应消息(来自 CFTPConnection)
- pycharm - 如何移动 Pycharm 打开文件工具栏
- .net - UI Automation的AutomationId在不同版本的windows上不一致
- crystal-reports - 是否有任何水晶编码风格来防止编译时出现零错误
- c++ - 使用 QMovie 加载 gif 文件失败
- apache-spark - Spark UI中的长时间调度程序延迟
- java - 基于单个 Main 方法删除所有未使用的代码
- python-3.x - 修改 PyGObject 中所有 TreeView 项的背景