Можно сделать так (дернул из своего проекта):
#models.py
class PageImage(models.Model):
title = models.CharField(max_length=200, blank=False, verbose_name='Заголовок')
text = models.TextField(max_length=1000, blank=True, verbose_name='Текст')
class PriceField(models.Model):
st = (
('ST', 'шт.'),
('SE', 'ед.'),
)
property = models.ForeignKey(Price, related_name='fields')
name = models.CharField(max_length=1000, blank=True, verbose_name='Название')
kolv = models.DecimalField(max_digits=100, decimal_places=0, default='0', verbose_name='Количество')
price = models.DecimalField(max_digits=100, decimal_places=2, default='0', verbose_name='Цена за шт.')
#admin.py
class PriceFieldsInline(admin.TabularInline):
model = PageImage
extra = 3
class PriceAdmin(admin.ModelAdmin):
inlines = [PriceFieldsInline, ]
admin.site.register(Page, PriceAdmin)
Далее итерацией в шаблоне или кастомном теге выводите таблицу прайса целиком.
"розница, от 10шт., от 100шт." и группы тоже с помощью этой модели решить думаю можно. только вопрос поточнее задайте.