I am trying to access information from two models in my django application here is my models:
class Events(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=50, blank=True, default='')
description = models.CharField(max_length=500, blank=True, default='')
date = models.CharField(max_length=200, blank=True, null=True)
time = models.CharField(max_length=200, blank=True, null=True)
price = models.CharField(max_length=240, blank=True, default='')
active = models.CharField(max_length=1, blank=True, default='d')
seats = models.CharField(max_length=200, blank=True, default='')
alcohol_choice = models.CharField(max_length=1, blank=True, default='n')
starter = models.CharField(max_length=350, blank=True, default='')
main_menu = models.CharField(max_length=350, blank=True, default='')
dessert = models.CharField(max_length=350, blank=True, default='')
notes = models.CharField(max_length=350, blank=True, default='')
class Meta:
app_label = 'events'
class GalleryImagesEvents(models.Model):
event = models.ForeignKey(Events, on_delete=models.CASCADE)
file = ResizedImageField(size=[1200, 800], quality=75, upload_to="events/static/galleryimages")
file_thumbnail = ResizedImageField(size=[300, 300], crop=['middle', 'center'], upload_to="events/static/galleryimages/thumbnails")
order = models.TextField(default='', blank=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['order']
I can have multiple Events for an user, Each event can have multiple gallery images.
What I am trying to do is get all the events from the user and only get one image for the event from the galleryimagesevent model attached to the event.
@csrf_exempt
@login_required(login_url="/login/")
def EventsView(request):
user = User.objects.get(pk=request.user.id)
events_list_data = Events.objects.filter(user_id=user).order_by('-date')[:10]
events_list_images = GalleryImagesEvents.objects.filter(event_id=events_list_data)
return render(request, 'events/view.html', {"events_list_data":events_list_data, 'events_list_images': events_list_images})
I know classes are used etc But I am still learning so bare with my coding. :)
Not getting this at all. How to connect them.
{% for event_list in events_list_data %}
<div class="panel-body event-box">
<div class="col-md-4 no-padding">
<img src="{{ events_list_images.file_thumbnail.url }}" class="img-responsive img-events-thumb">
</div>
<div class="col-md-6 event-inner-box">
<div>
<h4><b>{{ event_list.title }}</b> <span class="event-small">
{% if event_list.active == 'r' %} Not approved yet! {% endif %}
{% if event_list.active == 'd' %} Approved but deactivated! {% endif %}
{% if event_list.active == 'a' %} Approved & Active! {% endif %}
{% if event_list.active == 'e' %} Expired! {% endif %}
</span></h4>
<p>{{ event_list.description|slice:":100" }}...</p>
<br>
<button class="btn btn-primary btn-small" type="submit">Deactivate</button>
<button class="btn btn-primary btn-small" type="submit">Preview</button>
<button class="btn btn-primary btn-small" type="submit"><span class="fa fa-pencil"></span></button>
</div>
</div>
<div class="col-md-2 event-inner-box-date">
<div>
<p></p>
<h3><span class="dateShow dateformat_{{ event_list.id }}"></span><br><span class="dayformat_{{ event_list.id }}"></span></h3>
</div>
<script>
var dateMonthAsWord = moment('{{ event_list.date }}').format('DD');
var dateMonthAsWordMonth = moment('{{ event_list.date }}').format('MMM');
$('.dateformat_{{ event_list.id }}').html(dateMonthAsWordMonth);
$('.dayformat_{{ event_list.id }}').html(dateMonthAsWord);
</script>
</div>
<div class="clearfix"></div>
</div>
{% endfor %}
Above is how I would like to show my events.
TA!