1. Python / Говнокод #7680

    −88

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    #-----------view:
    
    
    def catalog(request):
    	subcatalog_list = SubCatalog.objects.all().order_by('index')
    	objects_list = Object.objects.all().order_by('subcatalog')
    	t = loader.get_template('catalog.html')
    	c = RequestContext(request, {
        	'subcatalog_list': subcatalog_list,
        	'objects_list': objects_list,
        })
    	return HttpResponse(t.render(c))
    
    
    #-----------template:
    		{% if subcatalog_list %}
        		{% for subcatalog in subcatalog_list %}
        			<div class="section_name clear">{{ subcatalog.name }}</div>
    				<div class="clear"></div>
    				{% if objects_list %}
        				{% for obj in objects_list %}
        					{% if obj.subcatalog.id == subcatalog.id %}
    						<div class="section">
    							<a class="clear" href="{{ obj.link }}/">{{ obj.name }}</a>
    							{% if obj.description %}
    							<div class="description">{{ obj.description|safe }}</div>
    							{% endif %}
    						{% if forloop.counter0|divisibleby:3 %} 
    						{% endif %}
    	    				{% endif %}
        				{% endfor %}
    				{% else %} 
        				<h2>No objects available.</h2>
        			{% endif %}
        		{% endfor %}
        	{% else %}
        		<h1>No subcatalogs available.</h1>
        	{% endif %}
    
    
    #-------И еще печенька напоследок:
    <a onclick="window.location = '/create/' + {{ subcatalog.id }} + '/'"></a>

    Django

    дико, дико.

    Запостил: alexeypav, 28 Августа 2011

    Комментарии (7) RSS

    • Индентация жесткая
      Ответить
    • дикий дикий абэзьян
      Ответить
    • Человек, видимо, не знаком со словарями
      Ответить
    • Pythonic:

      def catalog(request):
          objects_list = []
          sub_catalogs = SubCatalog.objects.all().order_by('index')
          for catalog in sub_catalogs:
              objects = Object.objects.filter(subcatalog=catalog)
              objects_list.append({'name': catalog.name,
                                   'objects': [{'name': object.name, 'link': object.link, 'description': object.description}
                                   for object in objects]})
      
          return render_to_response('catalog.html', {
              'objects_list': objects_list,
              }, context_instance=RequestContext(request))
      
      
      
      {% for directory in objects_list %}
          <div class="section-name">{{ directory.name }}</div>
          {% for object in directory.objects %}
              <div class="section">
                  <a class="clear" href="{{ object.link }}/">{{ object.name }}</a>
                  {% if obj.description %}
                      <div class="description">{{ object.description|safe }}</div>
                  {% endif %}
              </div>
          {% endfor %}
      {% endfor %}
      Ответить
    • >> if forloop.counter0|divisibleby:3
      >> divisibleby:3
      >> :3
      Ответить
    • Дико офк, но часть вины тут на самой джанге и ее упоротых разрабах https://code.djangoproject.com/ticket/6432
      Ответить

    Добавить комментарий