[Python] Incremento Automatico em models.py Django

Discussão em 'Python' iniciado por Stack, Abril 30, 2025.

  1. Stack

    Stack Membro Participativo

    Boa tarde,

    Estou aprendendo agora Django estou com uma situação talvez simples mas que eu nao estou conseguindo resolver.

    No meu models.py eu estou fazendo um cadastro de clientes e gostaria que quando a pessoa fizesse o cadastro, gerasse um numero automático tipo: 1001, 1002...

    Tem como fazer isso?

    meu models.py

    from django.db import models
    from djmoney.models.fields import MoneyField
    from phonenumber_field.modelfields import PhoneNumberField


    class NewAccount(models.Model):
    """
    Models to create a new account
    """
    GENDER_CHOICE = (
    ("M", "Male"),
    ("F", "Female"),
    )

    objects = None

    account_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50, blank=False)
    surname = models.CharField(max_length=50, blank=False)
    phone = PhoneNumberField()
    email = models.EmailField(max_length=30, blank=False)
    title = models.CharField(max_length=1, choices=GENDER_CHOICE)
    income = MoneyField(max_digits=10, decimal_places=2, default_currency='GBP')
    password = models.CharField(max_length=200, blank=False)


    essa e minha views.py

    def user_view(request):

    if request.method == "POST":
    user_form = UserForm(request.POST)

    if user_form.is_valid():
    user_form.save()

    else:
    form = {
    "user_form": user_form,
    }

    return render(request, 'sign.html', form)

    user = UserForm()

    return render(request, 'sign.html', {
    'user_form': user
    })


    e o forms.py

    from django import forms
    from phonenumber_field.widgets import PhoneNumberPrefixWidget
    from bank.models import NewAccount


    class UserForm(forms.ModelForm):
    objects = None

    class Meta:
    model = NewAccount
    widgets = {
    'password': forms.PasswordInput,
    'phone': PhoneNumberPrefixWidget(initial='GB'),
    }
    fields = '__all__'

    Continue reading...

Compartilhe esta Página