Here's the Gurobi code to solve your optimization problem. We've incorporated all your constraints, including the integer requirement for steaks and the continuous nature of black beans. The objective function is also defined as specified.

```python
from gurobipy import Model, GRB

# Create a new model
m = Model("food_optimization")

# Create variables
black_beans = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="black_beans")
steaks = m.addVar(lb=0, vtype=GRB.INTEGER, name="steaks")

# Set objective function
m.setObjective(1 * black_beans + 7 * steaks, GRB.MINIMIZE)

# Add constraints
m.addConstr(1 * black_beans + 9 * steaks >= 18, "iron_min")  # Minimum iron
m.addConstr(3 * black_beans + 7 * steaks >= 22, "cost_min")  # Minimum cost
m.addConstr(1 * black_beans + 3 * steaks >= 11, "fiber_min")  # Minimum fiber

m.addConstr(1 * black_beans + 9 * steaks <= 71, "iron_max")  # Maximum iron
m.addConstr(3 * black_beans + 7 * steaks <= 45, "cost_max")  # Maximum cost
m.addConstr(1 * black_beans + 3 * steaks <= 28, "fiber_max")  # Maximum fiber

m.addConstr(10 * black_beans - 1 * steaks >= 0, "black_beans_steaks_relation")


# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    print('Black Beans:', black_beans.x)
    print('Steaks:', steaks.x)
elif m.status == GRB.INFEASIBLE:
    print('The model is infeasible.')
else:
    print('Optimization ended with status %d' % m.status)

```
