不更新Django中的配置文件

bnl4lu3b  于 2023-03-31  发布在  Go
关注(0)|答案(1)|浏览(108)
型号:
Gender = (
    ('', 'انتخاب کنید'),
    (0, 'مرد'),
    (1, 'زن'),
)

Status_Marriage = (
    ('', 'انتخاب کنید'),
    (0, 'متاهل'),
    (1, 'مجرد'),
)

Method_Introduction = (
    ('', 'انتخاب کنید'),
    (0, 'تلگرام'),
    (1, 'وب سایت'),
    (2, 'تبلیغات'),
    (3, 'روزنامه'),
    (4, 'بیلبورد'),
    (5, 'اینستاگرام'),
    (6, 'سایر'),
)

Tahsilat = (
    ('', 'انتخاب کنید'),
    (0, 'پیش دبستانی'),
    (1, 'دبستان دوره اول'),
    (2, 'دبستان دوره دوم'),
    (3, 'متوسط یک'),
    (4, 'متوسط دو'),
    (5, 'دیپلم'),
    (6, 'پیش دانشگاهی'),
    (7, 'کاردانی'),
    (8, 'دانشجو کاردانی'),
    (9, 'کارشناسی'),
    (10, 'دانشجو کارشناسی'),
    (11, 'کارشناسی ارشد'),
    (12, 'دانشجو کارشناسی ارشد'),
    (13, 'دکترا'),
    (14, 'دانشجو دکترا'),
)

Semat = (
    ('', 'انتخاب نشده'),
    ('personnel', 'پرسنل'),
    ('teacher', 'مدرس'),
    ('student', 'زبان آموز'),
)

Status = (
    ('1', 'فعال'),
    ('0', 'غیرفعال'),
)

class Profile(AbstractUser):
    codemeli = models.CharField(max_length=10, verbose_name='کد ملی', unique=True)
    fname_en = models.CharField(max_length=150, verbose_name='نام لاتین')
    lname_en = models.CharField(max_length=150, verbose_name='نام خانوادگی لاتین')
    father = models.CharField(max_length=150, verbose_name='نام پدر', null=True)
    father_en = models.CharField(max_length=150, verbose_name='نام پدر لاتین', null=True)
    date_birth = models.DateField(verbose_name='تاریخ تولد', null=True)
    place_birth = models.CharField(max_length=150, verbose_name='محل تولد', null=True)
    gender = models.CharField(max_length=10,choices=Gender, verbose_name='جنسیت', null=True)
    status_marriage = models.CharField(max_length=10,choices=Status_Marriage, verbose_name='وضعیت تاهل', null=True)
    mobile = models.CharField(max_length=11, verbose_name='موبایل', null=True)
    phone = models.CharField(max_length=11, verbose_name='تلفن ثابت', null=True)
    method_introduction = models.CharField(max_length=10,choices=Method_Introduction, verbose_name='طریقه آشنایی', null=True)
    tahsilat = models.CharField(max_length=10,choices=Tahsilat, verbose_name='تحصیلات', null=True)
    reshte = models.CharField(max_length=150, verbose_name='رشته تحصیلی', null=True)
    job = models.CharField(max_length=150, verbose_name='َشغل', null=True)
    job_father = models.CharField(max_length=150, verbose_name='َشغل پدر', null=True)
    job_mather = models.CharField(max_length=150, verbose_name='َشغل مادر', null=True)
    mobile_father = models.CharField(max_length=11, verbose_name='موبایل پدر',null=True)
    mobile_mather = models.CharField(max_length=11, verbose_name='موبایل مادر',null=True)
    bank = models.CharField(max_length=150, verbose_name='َبانک / شعبه',null=True)
    account_number = models.CharField(max_length=150, verbose_name='شماره حساب',null=True)
    card_number = models.CharField(max_length=150, verbose_name='شماره کارت',null=True)
    shaba_number = models.CharField(max_length=150, verbose_name='شماره شبا',null=True)
    departman = models.ForeignKey(Departman, on_delete=models.CASCADE, verbose_name='متقاضی', null=True)
    state = models.CharField(max_length=150, verbose_name='استان',null=True)
    city = models.CharField(max_length=150, verbose_name='َشهر',null=True)
    area = models.CharField(max_length=150, verbose_name='َمنطقه',null=True)
    address = models.CharField(max_length=150, verbose_name='آدرس',null=True)
    description = models.TextField(verbose_name='توضیحات', null=True)
    image = models.ImageField(default='avatar.jpg', upload_to="Member/profile/", verbose_name='تصویر')
    status = models.CharField(max_length=4, choices=Status, verbose_name='وضعیت نمایش', null=True)
    semat = models.CharField(max_length=50, choices=Semat, null=True, verbose_name='سمت', default='0')
视图:
@login_required
def member_update(request, id):
    member = get_object_or_404(Profile, id=id)
    if request.method == 'POST':
        form = UpdateForm(request.POST,request.FILES, instance=member)
        if form.is_valid():
            form.save()
            messages.add_message(request, messages.INFO, 'ثبت با موفقیت انجام شد')
            return redirect("member_index")
        else:
            messages.add_message(request, messages.warning, 'خطا در ثبت کاربر')
            return redirect("member_index")
    else:
        form = UpdateForm(instance=member)
    context = {
        'form': form
    }
    return render(request, 'member/update.html', context)
表单:
class UpdateForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = [
            'username',
            'codemeli',
            'first_name',
            'last_name',
            'fname_en',
            'lname_en',
            'father',
            'father_en',
            'date_birth',
            'place_birth',
            'gender',
            'status_marriage',
            'mobile',
            'phone',
            'method_introduction',
            'tahsilat',
            'reshte',
            'job',
            'job_father',
            'job_mather',
            'mobile_father',
            'mobile_mather',
            'bank',
            'account_number',
            'card_number',
            'shaba_number',
            'departman',
            'state',
            'city',
            'area',
            'address',
            'description',
            'image',
            'status',
            'semat',
        ]
update.html:
<form method="post" enctype="multipart/form-data" autocomplete="off">
                                                   {% csrf_token %}
                                                   <div class="modal-header">
                                                       <h4 class="modal-title"> ویرایش کاربر </h4>
                                                   </div>
                                                   <div class="modal-body">
                                                       {% csrf_token %}
                                                       {{ form|crispy }}
                                                   </div>
                                                   <div class="modal-footer">
                                                       <button type="button" class="btn btn-default" data-dismiss="modal"> لغو</button>
                                                       <button type="submit" class="btn btn-primary"> ثبت</button>
                                                   </div>
                                               </form>
错误:

int()参数必须是字符串、类似字节的对象或真实的,而不是'function'

rggaifut

rggaifut1#

必须在选项中使用“”

Gender = (
    ('', 'انتخاب کنید'),
    ('0', 'مرد'),
    ('1', 'زن'), )

Status_Marriage = (
    ('', 'انتخاب کنید'),
    ('0', 'متاهل'),
    ('1', 'مجرد'), )

Method_Introduction = (
    ('', 'انتخاب کنید'),
    ('0', 'تلگرام'),
    ('1', 'وب سایت'),
    ('2', 'تبلیغات'),
    ('3', 'روزنامه'),
    ('4', 'بیلبورد'),
    ('5', 'اینستاگرام'),
    ('6', 'سایر'), )

Tahsilat = (
    ('', 'انتخاب کنید'),
    ('0', 'پیش دبستانی'),
    ('1', 'دبستان دوره اول'),
    ('2', 'دبستان دوره دوم'),
    ('3', 'متوسط یک'),
    ('4', 'متوسط دو'),
    ('5', 'دیپلم'),
    ('6', 'پیش دانشگاهی'),
    ('7', 'کاردانی'),
    ('8', 'دانشجو کاردانی'),
    ('9', 'کارشناسی'),
    ('10', 'دانشجو کارشناسی'),
    ('11', 'کارشناسی ارشد'),
    ('12', 'دانشجو کارشناسی ارشد'),
    ('13', 'دکترا'),
    ('14', 'دانشجو دکترا'), )

Semat = (
    ('', 'انتخاب نشده'),
    ('personnel', 'پرسنل'),
    ('teacher', 'مدرس'),
    ('student', 'زبان آموز'), )

Status = (
    ('1', 'فعال'),
    ('0', 'غیرفعال'), )

相关问题