как мне добавить число и строку к моему django - PullRequest
0 голосов
/ 20 июня 2020

Как я могу добавить номер и текст случайным образом к моему model.py. У меня есть веб-сайт с профилем пользователя. Когда пользователь подписывается, он генерирует случайный текст и номер в профиле пользователя, и он будет служить пользователю как идентификатор, пока подписка не закончится. Ниже мой код -

## models.py

 def plan_id():
    plan_id=[]
    for i in range(5):
        alpha=random.choice(string.ascii_letters)
        num=random.choice(string.digits)
        plan_id.append(alpha)
        plan_id.append(num)
    y = "".join(str(x)for x in plan_id)
    return y
    


class Patient(models.Model):
    STATE_CHOICES=(
        (True, u'Yes'),
        (False, u'No'),
    )
    user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, null=True, related_name="patient")
    subscribe = models.BooleanField(default=True, choices=STATE_CHOICES)
    plan_id = models.CharField(max_length=10, null=False, blank=True, default=plan_id)

## views.py

@ login_required

def patient(request):
    context = {
        'patient': Patient.objects.all()
    
    }
    return render(request, 'pages/patient.html', context)

## template . html

      <form method="POST">
        {% csrf_token %}
         <fieldset class="form-group">
             <legend class="border-bottom mb-4 h4 text-center center">Your Email</legend>
           <legend class=" mb-4 h3 center text-center">{{ user.email }}</legend>
         </fieldset>
         <div class="form-group text-center center">
          {% if not user.patient.subscribe %}
    <button class="btn btn-outline-info" type="submit">Subscribe</button>
{% else %}
{% if user.patient.subscribe %}
  <button class="btn btn-danger" disabled type="submit">Subscribed</button>

  <p>Thanks For Subscribing here is your Plan ID {{ user.patient.plan_id }} </p>
{% endif %}
{% endif %}
         </div>
      </form>

вот о чем я говорю

1 Ответ

0 голосов
/ 24 июня 2020

django имеет встроенные поля для этого, это очень круто классный материал для вопроса просто добавьте его в свою модель

plan_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True, help_text="Unique ID for every particular patient for every profile")
...