【MAC】记mac中django-admin.py 调用失败的解决方案

一.
作为一名入门django的新手,第一次在终端输入django-admin.py时,出现了 django-admin.py commond not found。

百度了很多资料,发现mac系统自带的是python2,而我自己新装的是python3,django是装在python3里的。

故我想把MAC系统默认的Python版本由Python2.x改为Python3.x
二 操作流程

  1. 终端打开.bash_profile文件
    open ~/.bash_profile
    在这里插入图片描述
  2. 修改.bash_profile文件内容 ,默认应该会有,如果没有PATH路径需要找到本机的路径设置 在.bash_profile中添加如下代码:
  3. export PATH=${PATH}:/Library/Frameworks/Python.framework/Versions/3.8/bin alias python="/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8"

3.在终端中重新读取.bash_profile文件 在终端输入
source .bash_profile

经历以上步骤后,我们mac的Python默认版本就变成最新的了

4.在终端中输入python --version验证

在这里插入图片描述

5.最后我们在终端输入django-admin.py测试是否 成功
在这里插入图片描述

Django Admin ,如果您想要在 `inline` 添加数据验证,可以使用 `clean()` 方法。`clean()` 方法是模型实例的方法,用于在保存实例之前执行验证。当您使用 Django 的表单或模型表单进行数据验证时,`clean()` 方法会在验证之前被调用。在 `clean()` 方法,您可以访问模型实例的所有属性,并执行任何自定义的验证逻辑。如果验证失败,您可以引发 `ValidationError` 并防止保存模型实例。 下面是一个示例,假设我们有两个模型 `Author` 和 `Book`,每个作者可以有多本书。我们想要在编辑作者时,确保所有书籍的名称都是唯一的。我们可以使用以下方法来实现: ```python from django.core.exceptions import ValidationError from django.forms.models import BaseInlineFormSet from django.contrib import admin from .models import Author, Book class BookInlineFormSet(BaseInlineFormSet): def clean(self): super().clean() book_names = set() for form in self.forms: if form.cleaned_data.get('DELETE') is True: continue book_name = form.cleaned_data.get('name') if book_name in book_names: raise ValidationError('Duplicate book name') book_names.add(book_name) class BookInline(admin.TabularInline): model = Book formset = BookInlineFormSet class AuthorAdmin(admin.ModelAdmin): inlines = [BookInline] admin.site.register(Author, AuthorAdmin) ``` 在上面的示例,我们定义了一个名为 `BookInlineFormSet` 的自定义表单集,用于验证 `inline` 表单的书籍名称是否唯一。如果发现重复的书籍名称,我们将引发 `ValidationError` 并阻止保存模型实例。我们还将 `BookInline` 类的 `formset` 属性设置为我们的自定义表单集,以便 Django Admin 在编辑作者时使用它。 请注意,我们在 `clean()` 方法使用 `form.cleaned_data.get('DELETE')` 检查表单是否被标为删除。这是因为 Django Admin 的 `inline` 表单可能包含已删除或尚未保存的表单,这些表单可能会在表单集引发错误。通过检查 `DELETE` 属性,我们可以跳过这些表单并确保验证仅适用于实际编辑的表单。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值