-1

I tried this and Django still working, but the .json files don't appear on my rute. This is models.py (Django script)

from django.db import models

class Pizza(models.Model):
    """A pizza in a pizzeria"""

    text=models.CharField(max_length=250)
    date_added=models.DateTimeField(auto_now_add=True)
    filename='C:\\Users\\dayao\\OneDrive\\Escritorio\\PythonCrashCourse_Ex\\Pizzas\\pizzotas\\name.txt'

    def __str__(self):
        return self.text

        with open(filename,'w') as f:
            f.write(self.text)


class Topping(models.Model):
    """Store n make a hook between Pizza an the toppings"""

    topic=models.ForeignKey(Pizza, on_delete=models.CASCADE)
    text=models.TextField()
    date_added=models.DateTimeField(auto_now_add=True)
    filename="C:\\Users\\dayao\\OneDrive\\Escritorio\\PythonCrashCourse_Ex\\Pizzas\\pizzotas\\pizza_toppings.txt"

    class Meta:
        verbose_name_plural ='Toppings'

    def __str__(self):
        if len(self.text)>=50:
            return f"{self.text[:50]}..."
        else:
            return self.text

        with open(filename,'w') as f:
            f.write(self.text)
GAEfan
  • 11,244
  • 2
  • 17
  • 33
Padax39
  • 3
  • 1
  • Fix your indentation. Your `with` statements are out of place, as they never get hit after the `returns`. WHere do they belong? – GAEfan Aug 20 '20 at 00:07

1 Answers1

0

Fix your indentation. Your with statements are out of place, as they never get hit after the returns. And filename does not belong where it is not used. Try this:

from django.db import models

class Pizza(models.Model):
    """A pizza in a pizzeria"""

    text=models.CharField(max_length=250)
    date_added=models.DateTimeField(auto_now_add=True)
    

    def __str__(self):
        filename='C:\\....name.txt'
        with open(filename,'w') as f:
            f.write(self.text)

        return self.text


class Topping(models.Model):
    """Store n make a hook between Pizza an the toppings"""

    topic=models.ForeignKey(Pizza, on_delete=models.CASCADE)
    text=models.TextField()
    date_added=models.DateTimeField(auto_now_add=True)
    

    class Meta:
        verbose_name_plural ='Toppings'

    def __str__(self):
        if len(self.text)>=50:
            return f"{self.text[:50]}..."
        else:
            filename="C:\\....\\pizza_toppings.txt"
            with open(filename,'w') as f:
                f.write(self.text)

            return self.text
GAEfan
  • 11,244
  • 2
  • 17
  • 33