தீர்க்கப்பட்டது: ஜாங்கோ மாதிரி வினவல்கள்

ஜாங்கோ மாதிரி வினவல்களின் முக்கிய பிரச்சனைகளில் ஒன்று, அவை மிகவும் வாய்மொழியாக இருக்கும். எடுத்துக்காட்டாக, கொடுக்கப்பட்ட வலைப்பதிவில் உள்ள அனைத்து கட்டுரைகளையும் நீங்கள் கண்டுபிடிக்க விரும்பினால், இது போன்ற வினவலைப் பயன்படுத்த வேண்டும்:

கட்டுரைகள் = Blog.objects.all()

கடந்த மாதத்தில் வெளியிடப்பட்ட அனைத்து கட்டுரைகளையும் நீங்கள் கண்டுபிடிக்க விரும்பினால், இது போன்ற வினவலைப் பயன்படுத்த வேண்டும்:

articles_published_in_the_last_month = Blog.objects.filter(published=True)

There are a number of ways to query a Django model. The simplest way is to use the Model.objects.all() method, which will return all objects for that model.

If you want to filter the queryset, you can use the Model.objects.filter(**kwargs) method, where kwargs is a dictionary of field names and values to filter on. For example, if you only wanted objects with a certain value for the 'name' field, you could do:

Model.objects.filter(name='value')

If you want to get a single object from the queryset, you can use the Model.objects.get(**kwargs) method, which will return the first object that matches the given criteria. For example, if you wanted to get an object with a particular 'id' value:

Model.objects.get(id=1)

நீங்கள் வினவல் தொகுப்பை ஆர்டர் செய்ய விரும்பினால், நீங்கள் Model.objects.order_by(field_name) முறையைப் பயன்படுத்தலாம், இது கொடுக்கப்பட்ட புலத்தின் மூலம் வினவல் தொகுப்பை ஏறுவரிசையில் வரிசைப்படுத்தும். இறங்கு வரிசையில் ஆர்டர் செய்ய நீங்கள் '-' முன்னொட்டையும் பயன்படுத்தலாம்:

Model.objects.order_by('-பெயர்')

QuerySet என்றால் என்ன

QuerySet என்பது தொடர்புடைய மாதிரிகளின் தொகுப்பாகும், அதை ஒன்றாக வினவலாம். மாடல்களை ஒன்றாகக் குழுவாக்க இது ஒரு வசதியான வழியாகும், எனவே நீங்கள் அவற்றை ஒரு யூனிட்டாக எளிதாக வினவலாம்.

வினவல் வெளிப்பாடுகள்

ஜாங்கோவில் தரவை வடிகட்ட வினவல் வெளிப்பாடு ஒரு சக்திவாய்ந்த வழியாகும். இது SQL வினவலில் உள்ள WHERE விதியைப் போன்றது, ஆனால் இது எந்த மாதிரி பொருளுடனும் பயன்படுத்தப்படலாம்.

எடுத்துக்காட்டாக, "எப்படி" என்று தொடங்கும் தலைப்புடன் அனைத்து கட்டுரைகளையும் கண்டறிய வினவல் வெளிப்பாட்டைப் பயன்படுத்தலாம்:

articles.filter(title__startswith='எப்படி')

வினவல் தொகுப்பு API குறிப்பு

QuerySet API ஆனது மாதிரியின் புலங்கள் மற்றும் தொடர்புடைய தரவை வினவுவதற்கான வழியை வழங்குகிறது. API ஆனது SQL SELECT அறிக்கையின் படி வடிவமைக்கப்பட்டுள்ளது, மேலும் நீங்கள் எந்தப் புலங்களை மீட்டெடுக்க விரும்புகிறீர்கள், எந்த வரிசையில் அவற்றைத் திரும்பப் பெற வேண்டும் மற்றும் எத்தனை வரிசை தரவுகளைத் திரும்பப் பெற விரும்புகிறீர்கள் என்பதைக் குறிப்பிட உங்களை அனுமதிக்கிறது.

QuerySet API ஐப் பயன்படுத்த, முதலில் ஒரு மாதிரி பொருளை உருவாக்கவும்:

django.db இலிருந்து இறக்குமதி மாதிரிகள் வகுப்பு MyModel(models.Model): பெயர் = மாதிரிகள்.CharField(max_length=30)

பின்னர் வினவல் பொருளை உருவாக்கவும்:

வினவல் = MyModel.objects.create_query() query.select('name').order_by('-name')

தொடர்புடைய இடுகைகள்:

ஒரு கருத்துரையை