Возможно, конечно, это не совсем правильное решение, но можно было бы переопределить метод save() у модели, добавив расчет за грамм
class Product(models.Model):
name = models.CharField(default='', max_length=50, help_text='Название продукта')
price = models.IntegerField(default=0, help_text='Цена за упаковку')
grams = models.IntegerField(default=0, help_text='Количество в упаковке (грамм)')
price_for_gram = models.IntegerField(default=0, help_text='Цена за грамм')
def save(self, *args, **kwargs):
self.price_for_gram = int(self.price / self.grams)
super().save(*args, **kwargs)