Django

⌘K
  1. Home
  2. Django
  3. Django তে কিভাবে কাজ করতে...
  4. Select2

Select2

Custom html

install the django_select2 package by running the following command:

pip install django_select2

models.py

class Warehouse(models.Model):
    name = models.CharField(max_length=100)
    location = models.CharField(max_length=100)
    # Add any other fields for the Warehouse model

    def __str__(self):
        return self.name

class Item(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField()
    quantity = models.PositiveIntegerField()
    warehouse = models.ForeignKey(Warehouse, on_delete=models.CASCADE,default=1)
    unit = models.ForeignKey(Unit, on_delete=models.SET_DEFAULT, default=1)
    price = models.DecimalField(max_digits=10, decimal_places=2, default=0)

Import the necessary modules in your forms.py file:

from django import forms
from django_select2.forms import Select2Widget
from .models import Item, Warehouse # my model 

class ItemForm(forms.ModelForm):
    warehouse = forms.ModelChoiceField(
        queryset=Warehouse.objects.all(),
        widget=Select2Widget(attrs={'class': 'select2'})
    )

myhtml template

<!DOCTYPE html>
<html>
<head>
    <!-- Include jQuery -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <!-- Include Select2 CSS -->
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" rel="stylesheet" />
    <!-- Include Select2 JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
</head>
<body>
<!-- Your form or select input -->
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Submit</button>
</form>

<script>
$(document).ready(function() {
    $('.django-select2').select2();
});
</script>
</body>
</html>

admin panel

সেলস অর্ডার এ আইটেম name অটো নিয়ে আসা

pip install django_select2

INSTALLED_APPS = [
    # ...
    'django_select2',
    # ...
]
#admin.py
from django_select2.forms import ModelSelect2Widget
from BusinessPartners.models import BusinessPartner 
class SalesOrderInfoAdminForm(forms.ModelForm):
    class Meta:
        model = SalesOrderInfo
        fields = '__all__'
        widgets = {
            'TotalAmount': forms.TextInput(attrs={'readonly': 'readonly'}),
            'CustomerName': ModelSelect2Widget(model=BusinessPartner, search_fields=['name__icontains']),
            
        }

#project  urls.py  
      path('select2/', include('django_select2.urls', namespace='django_select2')),

How can we help?