Как создать автоматически сгенерированный код в django - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть компания, отдел и список товаров. В списке товаров компании и отдела находятся внешние ключи. поэтому, когда я добавляю элемент в список элементов, элемент автоматически генерирует для себя код, например, из 3 алфавитов названия компании, 3 алфавитов названия отдела и 4 или 5 цифр номера. начиная с 0001 и с автоинкрементом. каждая позиция компании будет начинаться с 0001. Например: если для компании задано «ABCDE», а для отдела - «Финансы», код будет сгенерирован автоматически, как AB C -Fin-0001. Есть ли способ сделать это?

Model_Class

class Item(models.Model):
    item_name = models.CharField(max_length=255, blank =True)
    item_choice = (
        ('IT','IT'), 
        ('Electronics', 'Electronics'),
    )
    item_type = models.CharField(max_length=255, blank =True, choices = item_choice )
    code = models.CharField(unique=True, max_length=255)
    company = models.ForeignKey(Company, on_delete = models.SET_NULL, null =True,blank=True)
    department = models.ForeignKey(Department, on_delete = models.SET_NULL,null= True, blank=True)

My_view

def item_entry(request):
    title = 'Add Item'

    form = ItemForm(request.POST or None)
    if form.is_valid():
        form.save()
        messages.success(request, 'Successfully Saved')

        return redirect('/item_list')
    context = {
        "title": title, "form":form
    }

    return render(request,'item_entry.html', context)

Form_View

class ItemForm(forms.ModelForm):

    class Meta:
        model = Item
        fields = ("item_name","item_type", "code","company","department",)

Template_view

<table>
                <tr>
                    <th>#</th>
                    <th>Item Name</th>

                    <th>Item Type</th>
                    <th>Code</th>
                    <th>Company</th>
                    <th>Department</th>

                </tr>
                {% for instance in queryset %}
                <tr>
                    <td>{{forloop.counter}}</td>
                    <td><a href="{% url 'item_edit' pk=instance.pk %}"> {{instance.item_name}}</a></td>
                    <td>{{instance.item_type}}</td>
                    <td>{{instance.code}}</td>
                    <td>{{instance.company}}</td>
                    <td> {{instance.department}}</td>

                </tr>
                {% endfor %}
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...