2015-02-10 3 views
0

Я получаю эту ошибку, и я не уверен, как ее исправить. В конечном итоге я хочу добавить миниатюру для своего альбома, и после щелчка я смогу увидеть все фотографии в этом альбоме.Добавление экземпляров экземпляра модели в шаблон

Я пытаюсь добавить все модели моделей альбомов в мою базу данных и список всех фотографий с тем же альбомом. Я попытался сначала перечислить альбомы в своем шаблоне, чтобы узнать, какие значения я получу, но получаю эту ошибку.

Обратное прослеживание:

File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/Users/bli1/Development/Django/Boothie/home/views.py" in load_home_content 
    78.  return render(request, 'home/home.html', albums) 
File "/Library/Python/2.7/site-packages/django/shortcuts.py" in render 
    48.  return HttpResponse(loader.render_to_string(*args, **kwargs), 
File "/Library/Python/2.7/site-packages/django/template/loader.py" in render_to_string 
    177.  with context_instance.push(dictionary): 
File "/Library/Python/2.7/site-packages/django/template/context.py" in push 
    54.   return ContextDict(self, *args, **kwargs) 
File "/Library/Python/2.7/site-packages/django/template/context.py" in __init__ 
    19.   super(ContextDict, self).__init__(*args, **kwargs) 

Exception Type: TypeError at/
Exception Value: cannot convert dictionary update sequence element #0 to a sequence 

модели:

class Album(models.Model): 
    title = models.CharField(max_length=50, unique=True) 

class Photo(models.Model): 
    title = models.CharField(max_length=50, blank=True) 
    album = models.ForeignKey(Album) 
    photo = models.ImageField(upload_to=upload_path) 
    upload = models.DateTimeField(auto_now_add=True) 

view.py

def load_home_content(request): 
    albums = Album.objects.all() 

    if request.method == "POST": 
     form = ContactForm(request.POST) 
     if form.is_valid(): 
      # after is_valid(), the validated form data willbe in the form.cleaned_data dictionary. 
      # Data will have been nicely converted into Python types 
      email = form.cleaned_data['email'] 
      albums = get_albums() 
      if User.objects.filter(email=email).exists(): 
       print("email exists") 
       existing_user = User.objects.filter(email=email) 
       message = form.cleaned_date['message'] 
       ContactRequest(message=message, user=existing_user, email=email).save() 
       return render(request, 'home/home.html', albums) 
      else: 
       print("email/user does not exist") 
       first_name = form.cleaned_data['first_name'] 
       last_name = form.cleaned_data['last_name'] 
       phone_number = form.cleaned_data['phone_number'] 

       new_user = User(first_name=first_name, last_name=last_name, phone_number=phone_number, email=email) 
       new_user.save() 
       message = form.cleaned_data['message'] 
       time = datetime.now() 
       contact_request = ContactRequest(message=message, user=new_user, datetime_created=time) 
       contact_request.save() 
       return render(request, 'home/home.html', albums) 
     else: 
      print "form invalid" 
      return render(request, 'home/home.html', albums) 
    return render(request, 'home/home.html', albums) 

portfolio.html включены в home.html

<div class="col-md-4 col-sm-6 portfolio-item"> 
    <a href="#" class="portfolio-link"> 
     <div class="portfolio-hover"> 
     {{ albums }} 
     </div> 
     <img src="{{ STATIC_URL }}home/images/roundicons.png"> 
    </a> 
    </div> 

ответ

2

Третий параметр функции рендеринга должен быть словарем.

return render(request, 'home/home.html', {'albums': albums}) 

По какой-то причине у вас есть тот же ошибочный код несколько раз в вашем представлении.

Смежные вопросы